2011-01-20 01月20日の日記 (2011年)
■[C#][sqlserver] SQLServerのbinary/varbinary型の値をSQLで設定する方法 (binary, varbinary, byte[], OPENROWSET, 16進数)
以下自分用のメモです。忘れない内にメモメモ・・。
SQLServerにて、binary/varbinary型の列の値を
SQLで更新する必要がある場合、2つの方法があります。
- OPENROWSETを利用する方法
- 直接指定する方法
1.の方法は、一旦ファイルにしてからそれを登録する方法です。
INSERT INTO XXXX(binCol) SELECT * FROM OPENROWSET(BULK N'C:\XXXX.dat', SINGLE_BLOB)
2.のやり方は文字通りSQLの中に直接埋め込みます。
結果は、「16進数にしてぶち込む」という事になります。
以下、サンプルSQLです。
update [XXXX] set [binCol] = 0x866d5e1ef12ad8e06725f2fe where [id] = 1
上記のように、先頭に「0x」を付与して16進数で値を構築します。
.NETで開発している場合は、ADO.NET側でうまくやってくれるので
基本的にbyte[]しか相手にしませんので、気にしなくてOKです。
以下、ついでにサンプル用の16進数を作成したちょんプロ。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { byte[] buf = new byte[100]; new Random().NextBytes(buf); Console.WriteLine("0x{0}", string.Join("", buf.Select(b => Convert.ToString(b, 16)).ToArray())); Console.ReadKey(); } } }
【参照リソース】
- http://bytes.com/topic/sql-server/answers/78700-binary-varbinary-question
- http://weblogs.sqlteam.com/peterl/archive/2007/09/26/Insert-binary-data-like-images-into-SQL-Server-without-front-end.aspx
================================
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
トラックバック - http://d.hatena.ne.jp/gsf_zero1/20110120/p1
リンク元
- 104 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4ADBF_jaJP290JP291&q=C#+XML+LINQ+書き込み
- 99 http://sites.google.com/site/gsfzero1/
- 54 http://www.google.co.jp/search?hl=ja&lr=lang_ja&tbs=lr:lang_1ja&q=vb.net+XML+XmlReader&aq=f&aqi=g1&aql=&oq=
- 39 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=2&cts=1331085661748&ved=0CDIQFjAB&url=http://d.hatena.ne.jp/gsf_zero1/20110120/p1&ei=bsFWT9emKbDFmQXv1ODfCQ&usg=AFQjCNH1CKFs65Qc4BebXH2oSm2g9PdT0Q
- 39 http://www.google.co.jp/url?sa=t&rct=j&q=varbinary&source=web&cd=5&ved=0CEgQFjAE&url=http://d.hatena.ne.jp/gsf_zero1/20110120/p1&ei=2gemTuy-IoT5mAW8zsHZDw&usg=AFQjCNH1CKFs65Qc4BebXH2oSm2g9PdT0Q
- 33 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http://d.hatena.ne.jp/gsf_zero1/20110120/p1&rct=j&q=c# SQLServer varbinary 変換&ei=3n-yTc3TIovIuAOkqdyABw&usg=AFQjCNH1CKFs65Qc4BebXH2oSm2g9PdT
- 32 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cts=1330676625588&sqi=2&ved=0CC0QFjAA&url=http://d.hatena.ne.jp/gsf_zero1/20110120/p1&ei=g4NQT6P8AcXUmAWdw-27Cg&usg=AFQjCNH1CKFs65Qc4BebXH2oSm2g9PdT0Q&sig2=sYTPAk4pibmPwnA7avmvvA
- 29 http://b.hatena.ne.jp/entry/d.hatena.ne.jp/gsf_zero1/20110120/p1
- 26 http://www.google.co.jp/
- 23 http://www.google.co.jp/url?sa=t&rct=j&q=sqlserver+バイナリ型 insert&source=web&cd=6&ved=0CFEQFjAF&url=http://d.hatena.ne.jp/gsf_zero1/20110120/p1&ei=xH_yTr6qAq7GmQXD49y5Ag&usg=AFQjCNH1CKFs65Qc4BebXH2
Development Tools-Visual C#