0

INSERTの一部としていくつかの長い文字列をvarbinary(max)に変換しようとしています。http://msdn.microsoft.com/en-us//library/ms188362.aspxによると、varbinary(max)は最大2^31-1バイトを保持できます。ただし、使用する場合:

CONVERT(varbinary(max),"ReallyLongString...") 

文字列は8000文字に切り捨てられます。

これらの文字列を切り捨てずにvarbinary(max)に入れる方法についてのアイデアはありますか?

ありがとう!

4

2 に答える 2

3

これは SQL Server 2012 で機能します。

-- Insert
INSERT INTO myTable (value) VALUES 
    (CAST('<really long string>' AS VARBINARY(MAX)));

-- Retrieve
SELECT CAST(value AS VARCHAR(MAX)) FROM myTable;

LEN10k 文字の値を挿入すると、結果の VARCHAR(MAX)を使用して検証された同じ値が返されます。

-- Validate
SELECT LEN(CAST(value AS VARCHAR(MAX))) FROM myTable;

> 10000

で遊ぶ SQLfiddle。悲しいことに、SQLfiddles のセットアップでは 8k 文字しか使用できないため、変数に 10k 文字列を作成する必要がありました。
上記のように、ローカル SQL マネージャーで通常の引用符付き文字列定数を使用して動作します。

于 2013-02-08T16:18:54.433 に答える