2011-07-13 75 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 Server 2008,但基本上這些腳本附加到我的項目 這是在c#visual studio 2010中的類庫 – Erez

回答

0

你不需要多INSERT語句 - 一個會做。

您可以使用SELECT語句UNION插入多行:如果您使用的是SQL Server 2008中

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

,該VALUES語句的擴展:

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

爲SQL見INSERT服務器在MSDN上。


如果你在談論的可讀性,你可以使用類似以下的(雖然你會最終有一個很長的文件),和編碼這件事將需要大量的時間:

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

對於你想要的東西沒有標準的約定,因爲這樣的腳本是爲了在SQL中運行,而不是爲了讀取。

+0

謝謝,但它不能解決我必須更改值時混淆的問題。 兩個領域的例子它的小菜一碟,但我的腳本有超過30個領域。 – Erez

+0

@Erez - 我已經給出了關於可見性的另一種選擇,但我質疑需要開始。 – Oded

1

使用兩條線:

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中生成腳本。