这些 StackOverflow 问题这里、这里和这里都说同样的事情,但我无法让它在 SSMS 或 SQLFiddle 中运行
CREATE TABLE #Names
(
Name1 VARCHAR(100),
Name2 VARCHAR(100)
)
INSERT INTO #Names
(Name1, Name2)
VALUES
('Matt', 'Matthew'),
('Matt', 'Marshal'),
('Matt', 'Mattison')
当我在 SSMS 中执行此操作时,插入失败,并在
VALUES
之后的第一行显示以下消息
消息 102,第 15 级,状态 1,第 10 行
“,”附近的语法不正确。
这个 Fiddle 在没有
#
符号的情况下运行,并且当表名称为 #Names
时架构成功执行,但是当我尝试从表中选择 * 时,我收到以下消息
无效的对象名称“#NAMES”。:SELECT * FROM #NAMES
SQL Server 2012支持多次插入吗?
更新:显然正在 SSMS 2012 上访问 2005 年服务器....
SELECT @@VERSION --Returns: Microsoft SQL Server 2005
使用 SQLFiddle 时,请确保分隔符设置为 GO。此外,模式构建脚本在与运行脚本不同的连接中执行,因此在一个连接中创建的临时表在另一个连接中不可见。这个小提琴表明您的代码是有效的并且可以在 SQL 2012 中运行:
MS SQL Server 2012 架构设置:
查询1:
CREATE TABLE #Names
(
Name1 VARCHAR(100),
Name2 VARCHAR(100)
)
INSERT INTO #Names
(Name1, Name2)
VALUES
('Matt', 'Matthew'),
('Matt', 'Marshal'),
('Matt', 'Mattison')
SELECT * FROM #NAMES
结果:
| NAME1 | NAME2 |
--------------------
| Matt | Matthew |
| Matt | Marshal |
| Matt | Mattison |
这里是 SSMS 2012 屏幕截图:
是的,SQL Server 2012支持多次插入 - SQL Server 2008中引入了该功能。
这让我想知道您是否有 Management Studio 2012,但您确实连接到 SQL Server 2005 实例...
您从 SELECT @@VERSION
获得什么版本的 SQL Server
engine??