How to insert data in a batch?
在MySQL中,我可以触发这些语句,一次插入5行:
1 2
| CREATE TABLE t (id INT PRIMARY KEY AUTO_INCREMENT)
INSERT INTO t VALUES (DEFAULT),(DEFAULT),(DEFAULT),(DEFAULT),(DEFAULT) |
我怎样才能在MS SQL Server中做同样的事情?
附: 建议的副本无法解决问题的原因是它具有非标识列的表。 我的表只有一个标识列。
-
如果您使用的是SQL Server 2008或更高版本,则您的问题将起作用。 对于2005年及之前的版本,您必须获得更多创意。 无论如何,这个问题是一个骗局。
-
@TimBiegeleisen它不起作用。 我刚试过 如果你可以使它工作,告诉我如何。
-
@TimBiegeleisen特别是错误是An explicit value for the identity column in table 't' can only be specified when a column list is used and IDENTITY_INSERT is ON.
-
您仍然没有告诉我们您正在使用的SQL Server版本。 IMO真的很糟糕。
-
您可以尝试关闭自动增量,但之后您将失去SQL Server的功能,跟踪id。 也许你应该考虑改变你的架构。
-
@TimBiegeleisen我在SQL 2005和2014中尝试过它 - 它既没有工作也没有。
-
你可以在这里使用循环和存储过程吗? 或者只是添加第二个非自动增量列。
如果你有这个定义:
1
| CREATE TABLE t (id INT IDENTITY(1,1) PRIMARY KEY) |
然后你可以这样做:
1 2 3 4 5
| INSERT t DEFAULT VALUES
INSERT t DEFAULT VALUES
INSERT t DEFAULT VALUES
INSERT t DEFAULT VALUES
INSERT t DEFAULT VALUES |
-
我试图在批处理操作中执行此操作。 例如。 5行,带有一个插入。 就像我在MySQL上做的那样。
-
@AngryHacker我不认为SQL Server在尝试仅插入自动递增列时允许这样做。 如果您有其他列,则可以使用MySQL风格的语法。