我有一些情况需要编写多行相同的值来设置一些表。假设我必须添加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