tsql - sqlserver text 型 分割




text、ntext、およびimageデータ型はローカル変数では無効です (2)

このエラーを修正するにはどうすればよいですか?

The text, ntext, and image data types are invalid for local variables.

私のprocは:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetJobInfo]
    (
    @jobId int,
    @subject varchar(50) OUTPUT,
    @Body ntext OUTPUT,
    @prepared_email_id int OUTPUT
    )
AS
BEGIN
    SET NOCOUNT ON
    SELECT TOP 1 @prepared_email_id = p.[PreparedEmailID],
        @subject = p.[Subject],
        @Body = p.[Body]
        FROM [PreparedEmails] p INNER JOIN
        [Jobs] j ON p.[PreparedEmailID] =
        j.[PreparedEmailID]
        WHERE j.[JobID] = @jobId
    RETURN
END

私はエラーが何であるか、それをどのように修正するか分からない。 私を助けてください...


ローカル変数のデータ型としてNTEXTを使用することは許可されていないことを伝えています。

@Body ntext OUTPUT@Body NVARCHAR(MAX) OUTPUT変更する@Body NVARCHAR(MAX) OUTPUTはそれを@Body NVARCHAR(MAX) OUTPUTます。


私はこれが古いが、言及する価値があることを知っている。 テーブルにこれらのデータ型が必要な場合は、選択または更新/挿入を実行するときに変数をキャストします。

SELECT cast(@somevariable as ntext) from...

Update some table set somevalue=cast(@somevariable as ntext) where...






sql-server-2005