4

SSRS レポートによって呼び出された、以前に動作していたストアド プロシージャでエラーが発生しました。7000+ NVARCHAR(MAX) 文字列と組み合わせて、ストアド プロシージャによって呼び出されたスカラー関数の LIKE ステートメントまで追跡しました。 . それは次のようなものです:

メッセージ 8152、レベル 16、状態 10、行 14
文字列型やバイナリは省略されます。

次のコードで再現できます。

DECLARE @name1 NVARCHAR(MAX) = ''
DECLARE @name2 NVARCHAR(MAX) = ''
DECLARE @count INT = 4001
WHILE @count > 0
    BEGIN
        SET @name1 = @name1 + 'a'
        SET @name2 = @name2 + 'a'
        SET @count = @count - 1
    END

SELECT LEN(@name1)

IF @name1 LIKE @name2
    PRINT 'OK'

どうしたんだ?とにかくこの制限の周りにありますか、それとも正当な理由がありますか? ありがとう。

4

2 に答える 2