我有一些情況需要編寫多行相同的值來設置一些表。假設我必須添加120行,並填充兩列。我正在尋找一個快捷方式,而不是將Insert行重複n次。這個怎麼做?要多次執行的SQL命令?
回答
將這些值放入未使用的表中以保持安全。從那裏你可以從這個表格插入你需要設置的表格。
如何
Insert Table(colsnames)
Select Top 120 @value1, @Value2, etc.
From AnyTableWithMoreThan120Rows
只需確保類型的@Value列表中的值的colNames匹配列表
大多數系統表都會有足夠的行。 – 2009-11-03 03:46:27
但我在表中沒有這些值。爲他們創建一個表將破壞目的 – Alex 2009-11-03 04:21:08
插入沒有從表中獲取數據,它只是使用表來獲得定義數量的行。 select子句應該只包含對傳入的參數值的引用。就像如果你執行了[從tablewith1000Rows中選擇'MyName'],你將得到1000行'MyName',並且表中沒有數據。 – 2009-11-03 14:12:56
怎麼樣
insert into tbl1
(col1,col2)
(select top 120 @value1,@value2 from tbl2)
如果SQL Server 2008中 。 SQL Server 2008中的新增功能可以在單個查詢中向表中插入多行。
insert into tbl1
(col1,col2)
values
(@value1,@value2),(@value1,@value2),.....(@value1,@value2)
- 創建與您的數據的Excel電子表格。
- 將speadsheet導入到Sql Server中。
在SQL Server Management Studio中,您可以使用 「GO」 的關鍵字與參數:
INSERT INTO YourTable(col1, col2, ...., colN)
VALUES(1, 'test', ....., 25)
GO 120
但是,這隻能在管理工作室(這不是一個適當的T-SQL命令 - 這是一個Mgmt Studio命令字)。
馬克
你甚至可以像這樣(只是一個例子)
declare @tbl table(col1 varchar(20),col2 varchar(20))
; with generateRows_cte as
(
select
1 as MyRows
union all
select
MyRows+1
from generateRows_cte
where MyRows < 120
)
insert into @tbl(col1,col2)
select
'col1' + CAST(MyRows as varchar),'col2' + CAST(MyRows as varchar)
from generateRows_cte OPTION (MAXRECURSION 0)
select * from @tbl
注嘗試: - 爲什麼你不與批量插入到試圖從SqlServer的數據集?我沒有注意到你也有前端(VB)!
像查爾斯的解決方案,但也許更好,因爲在飛行中創建表。我喜歡它。謝謝。 – Alex 2009-11-04 17:23:12
即使您可以藉助SYS.COLUMNS,master..spt_values等一些系統表的幫助來完成您的任務 – 2009-11-05 03:40:37
- 1. 只執行一次Sql命令一次
- 2. 執行多個命令行一次
- 3. 執行sql命令
- 4. 一次執行多個unix命令
- 5. 一次執行多個Python命令
- 6. JSch一次執行多個linux命令
- 7. PHP ssh2_exec,一次執行多個命令
- 8. 在一次往返中執行多個SQL命令
- 9. MYSQL命令執行多個.sql文件
- 10. SQL命令無法執行
- 11. SQL命令執行除法
- 12. 試圖執行sql命令
- 13. SQL命令不執行
- 14. 多PowerShell命令需要從命令行
- 15. 殼執行許多命令
- 16. 多個命令執行
- 17. 執行SQL命令作爲SQL命令的嵌套循環
- 18. 使用sed多次執行同一行上的命令
- 19. java在執行命令之前需要運行兩次
- 20. Ruby需要 - 多次執行
- 21. 使用ProcessBuilder執行需要命令行輸入的命令
- 22. 要執行命令的字符串?
- 23. Python(pdb) - 排隊要執行的命令
- 24. crontab和測試要執行的命令
- 25. SQL對於每一行執行命令
- 26. 從命令行執行SQL腳本
- 27. 使用命令行執行.sql文件
- 28. 執行在命令行.sql文件
- 29. 命令行命令的執行時間
- 30. 何處存儲執行的SQL命令
你可以簡單地把你的插入語句放入一些while循環嗎? – 2009-11-03 03:22:43
我可以,但我會在VB中做這件事,並認爲最好避免發送回到服務器。有沒有在SQL 2005中做sp循環? – Alex 2009-11-03 04:59:52