sql >> データベース >  >> RDS >> Sqlserver

Nvarchar(Max)の場合、TSQLで4000文字しか取得できませんか?

    これをnvarchar(max)として宣言しました。これにより、2 GBのデータが許可されるため、2GBが格納されます。

    何が起こっているのか:

    • データ型は割り当てまでまだnvarchar(max)ではありません @sql1へ
    • それ以前は、それぞれが4000(定数)未満の文字列のコレクションです
    • 短い定数を短い変数(short =<4000)と連結しています
    • つまり、4000文字を@sql1に入れます

    したがって、右側にnvarchar(max)があることを確認してください。

    1つのアイデア。 2行目は、nvarchar(max)を定数=nvarchar(max)

    と連結します。
    SET @SQL1 = ''
    SET @SQL1 = @SQL1 + 'SELECT DISTINCT Venue...
       ....
    

    すべての言語で発生する整数除算と同じです。

    declare @myvar float
    set @myvar = 1/2 --gives zero because it's integer on the right
    

    演算子の優先順位(データ型の優先順位を下げる)は常に最後に「代入」されます... SQL ServerのUnicode文字列が異なる必要があるのはなぜですか?



    1. SQL ServerのPARSE()とTRY_PARSE()の違い:違いは何ですか?

    2. SQLでビューを作成する方法

    3. PostgreSQLストリーミングレプリケーションと論理レプリケーション

    4. MySQLで今日からレコードを取得する方法