2011-07-13 6 views
1

長いInserstを含むSQLファイルがあります。 問題は、例えば列番号12を編集する場合、値領域の列を数え始めなければならず、非常に混乱します。SQLスクリプト構文のベストプラクティス

enter image description here

魔女はあなたがどの列に属している値を見つけるために持っているので、更新するための非常に紛らわしいです:

は、彼らはのようになります。

その値を持つ列をマッハがより簡単になるように挿入するスクリプトを書くための別の方法は何ですか?または助けることができるツールがありますか?

多分何か -

Insert tableName column1 = '10', column2 = '5' , column3 = 'asdsd' .... 

PS - その上で右クリックし、[新しいタブで開く」の画像を参照するには

+0

どのデータベースを使用していますか(そしてどのバージョン)ですか? – Oded

+0

イメージを修正しました.. – ascanio

+0

SQLサーバー2008しかし、基本的にそれらのスクリプトは私のプロジェクトに添付されています これは、C#Visual Studio 2010のクラスライブラリです – Erez

答えて

0

あなたが複数のINSERT文を必要としない - 1が行います。

あなたが複数の行を挿入するために UNIONSELECTステートメントを使用することができます

INSERT myTable (Col1, Col2) 
SELECT val1, val2 UNION 
SELECT val3, val4 

SQL Server 2008を使用している場合は、VALUES文は拡張子があります。

INSERT myTable (Col1, Col2) 
VALUES (val1, val2), 
(val3, val4) 

参照INSERT SQLのためにMSDNのサーバー。


あなたが読みやすさの話(あなたは非常に長いファイルで終わるでしょうが)、あなた次のようなものを使用することができ、かつこれをコーディングしている場合は、多くの時間がかかります。

INSERT myTable (Col1, Col2) 
SELECT val1, -- Col1 
     val2 -- Col2 
UNION 
SELECT val3, -- Col1 
     val4 -- Col2 
そのようなスクリプトがない読み取るため、SQLで実行するために意図されているよう

は、あなたが望むもののための標準的な慣習はありません。

+0

ありがとうが、値を変更する必要があるときに混乱の問題を解決しません。 2つのフィールドの例ではケーキですが、スクリプトには30以上のフィールドがあります。 – Erez

+0

@Erez - 私は可視性に関して別の選択肢を与えましたが、まずは必要性について質問します。 – Oded

1

を使用して、2つの行:

INSERT INTO TABLE (COLUMN1, COLUMN2  , COLUMN3) 
      VALUES (Value1 , "Long Value 2", "..." ); 
+0

ありがとうございます。しかし、カラムが30以上の場合、そのフィールドに対するカラムの位置合わせは良くありません。 – Erez

+0

タブを使用して、それらを並べて保持します。 –

1

あなたは、SQL Serverで導入されたレコードを挿入するための新しい方法を使用することができますが、データと一致する列名を維持する必要があり、2008年

insert into @MyTable 
    (Column1, Column2, Column3, Column4, Column5,     Column6) values 
    (1,  2,  3,  4,  cast(6 as numeric(38,8))), 6), 
    (1,  2,  3,  4,  cast(6 as numeric(38,8))), 6), 
    (1,  2,  3,  4,  cast(6 as numeric(38,8))), 6), 
    (1,  2,  3,  4,  cast(6 as numeric(38,8))), 6), 
    (1,  2,  3,  4,  cast(6 as numeric(38,8))), 6) 

ページに収まらない行がある場合は、挿入を再開するか、適切な場所に列コメント行を追加することができます。

insert into @MyTable 
    (Column1, Column2, Column3, Column4, Column5,     Column6) values 
    (1,  2,  3,  4,  cast(6 as numeric(38,8))), 6), 
    (1,  2,  3,  4,  cast(6 as numeric(38,8))), 6), 
    (1,  2,  3,  4,  cast(6 as numeric(38,8))), 6), 
--(Column1, Column2, Column3, Column4, Column5,     Column6) values 
    (1,  2,  3,  4,  cast(6 as numeric(38,8))), 6), 
    (1,  2,  3,  4,  cast(6 as numeric(38,8))), 6) 

また、実際のテーブルにデータを保存して、代わりにテーブルを更新することもできます。いくつかのツールを使用して、そのテーブルからの挿入をスクリプト化します。たとえば、Server Management Studioでスクリプトを生成します。