text,ntext和image数据类型对于局部变量无效。铸造后

时间:2019-05-08 08:43:31

标签: sql-server tsql stored-procedures sqldatatypes

我有一个用于获取工作信息的存储过程。我将ntext强制转换为nvarchar(max),但仍然收到类似以下错误:

Msg 2739, Level 16, State 1, Line 5
The text, ntext, and image data types are invalid for local variables.
Msg 2739, Level 16, State 1, Line 7
The text, ntext, and image data types are invalid for local variables.
Msg 2739, Level 16, State 1, Line 8
The text, ntext, and image data types are invalid for local variables.

这是我的存储过程:

ALTER PROCEDURE [dbo].[GetJobInfo]
    (
    @jobId int,
    @subject text OUTPUT,
    @plainText1 nvarchar(max) OUTPUT,
    @ToUser text OUTPUT,
    @Cc text OUTPUT,
    @templateID int OUTPUT
    )
AS
BEGIN
    SET NOCOUNT ON

    SELECT TOP 1 @subject = p.[Title],
        @plainText1 = CONVERT(NVARCHAR(max),p.[Body]),
        @ToUser =p.[ToUser],
        @Cc =p.[Cc],
        @templateID =p.[template_id]
        FROM [tbl_Email_master] p INNER JOIN
        [Jobs] j ON p.[Id] =
        j.[PreparedEmailID]
        WHERE j.[JobID] = @jobId
    RETURN
END

这是怎么回事。请帮助我...

1 个答案:

答案 0 :(得分:1)

您具有TEXT类型的参数(@ToUser@Cc ...),根据它们的值将它们分别更改为VARCHAR(MAX)NVARCHAR(MAX)将保留,在SP参数定义中。对于电子邮件,可能是VARCHAR(MAX)

TEXTNTEXTIMAGE将是be deprecated,从现在开始就不要使用它,并在代码中看到它时立即尝试对其进行更新。