2012-07-18 62 views
0

需要向數據庫添加一堆重複記錄,而不想手動完成所有操作。SQL INSERT使用WHILE LOOP和SELECT

需要手動添加初始記錄,但然後想要創建一個查詢我可以運行本質上模板其餘的記錄,然後只需手動更改一個不同的字段。

問題是,直到我輸入它們,我才確切地知道最初的記錄是什麼。

例如

FieldOne | FieldTwo | FieldThree 
----------+------------+-------------- 
Text One | Text Two A | int Three A 
Text One | Text Two B | int Three A 
Text One | Text Two C | int Three A 
... 

這一切都必須由手工完成。然後我需要創建:

FieldOne | FieldTwo | FieldThree 
----------+------------+-------------- 
Text One | Text Two A | int Three B 
Text One | Text Two B | int Three B 
Text One | Text Two C | int Three B 
... 

...重複字段2中的所有不同值。

希望有道理嗎?

從本質上講就是我想要做的是:

WHILE (SELECT ALL DISTINCT VALUES FIELDTWO) 
BEGIN 
INSERT INTO TABLE VALUES ('Same all the time', Value From the FieldTwo Select, 'Same all the time') 
END 

這可以在SQL Server中完成,你可以給我確切的T-SQL語句來做到這一點?

+1

使用的代碼按鈕(像我用SQL完成),而不是''
標籤,因爲它現在是不可能重新格式化你的代碼。 – 2012-07-18 13:21:27

+0

使用SQL Server。 – Hunter 2012-07-18 13:29:31

回答

5

你應該能夠做到這一點:

INSERT INTO TABLE1 (fieldtwo, fieldone, fieldthree) 
SELECT DISTINCT fieldtwo, 'Same all the time', 'Same all the time' From TABLE2 
+0

太棒了。簡單而有效!謝謝。 – Hunter 2012-07-18 13:40:57