SQLSERVER」タグアーカイブ

ストアドプロシージャ、テーブルのデータを使って文字を結合して出力したい

/********************************
テーブルのデータを使って文字を結合して出力したい
用途は、テーブルデータを別のサーバのテーブルにインサートしたいときに大量にINSERT文を
SELECT出力のときに文字列として出力したい。
例えば
テーブルデータに
041という文字列があったとして、
「INSERT INTO TEST ([CODE],[NAME])VALUES(041, ‘test01’)」
という文字列をSELECTしたときに出力するというもの。
こういった処理はエクセルのマクロでもできるけど、タブとか空白とかが入り込むので
それを削除する(置換)が面倒だったりする。
結局は、手間がかかるのはどちらも同じなので使いやすい方で出力すればOK

*/
test_tableにCODE,NAMEのカラムが存在する。
INSERT文をテーブルのレコードを使って文字として出力して、別の環境にINSERTしたいとする。
テーブルには以下のデータが入っているとする
ID CODE NAME
1 041 test01
2 041 test02
3 041 test03
4 NULL test04
5 NULL test04

–なぜかカッコと中括弧が正常に表示されてないことがあるので、分解するとうまくいく
–シングルクォーテーションが必要なときは””4つで1つのシングルクォーテーションになる。これは2つが囲みで2つが1つをあらわすので4つで1つ

–出力例、シングルクォーテーションでNAMEカラムを囲った
–INSERT INTO TEST ([CODE],[NAME])VALUES(041, ‘test01’)

CASTでなくて、CONVERTもある
CONVERT(nvarchar(50),文字列)
CAST(文字列 as nvarchar(50))

ついでにINT変換はこんな感じ。文字列、変換、数字