SQLクエリを実行すると、次のようなメッセージが表示されます。
データ型varcharからデータ型varbinaryへの暗黙的な変換は許可されていません...このクエリを実行するには、CONVERT関数を使用します。 (重大度16) `
挿入したいデータは次のようになります
'00001200000000000010000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF...FFF'
このクエリを実行するにはどうすればよいですか?
クエリは次のようになります:
UPDATE <table> SET VARBINARY_DATA = '00001200000000000010000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF....' WHERE ID = 12
SQL Server 2005以降、CONVERTは必要な処理を実行します。
CONVERT(varbinary(2000), '00001340132401324...', 2)
バイナリへの変換/バイナリからの変換のスタイルは次のとおりです。
文字をフォーマット0のバイナリに変換する場合:
char
またはvarchar
データ(ASCII、ISO-8859-1など)はバイナリバイトになります。単一文字エンコーディングの場合、これは文字ごとに1バイトを意味します。nchar
またはnvarchar
データ(つまり、UTF-16)は、ビッグエンディアン形式でそれぞれ2バイトになるため、N'ABC'
は0x410042004300
になります。フォーマット1および2で16進数を2進数に変換する場合。
MSDNを参照してください:
UTF-8が必要な場合は、テキストをUTF-8に変換するUDFについて、ここで私の回答を参照してください。