我有一个用于获取工作信息的存储过程。我将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
这是怎么回事。请帮助我...
答案 0 :(得分:1)
您具有TEXT
类型的参数(@ToUser
,@Cc
...),根据它们的值将它们分别更改为VARCHAR(MAX)
或NVARCHAR(MAX)
将保留,在SP参数定义中。对于电子邮件,可能是VARCHAR(MAX)
。
TEXT
,NTEXT
和IMAGE
将是be deprecated,从现在开始就不要使用它,并在代码中看到它时立即尝试对其进行更新。