这些StackOverflow问题here,here和here都说同样的事情,但我不能让它在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
之后的第一行显示以下消息
Msg 102,Level 15,State 1,Line 10
附近的语法不正确
','。
此Fiddle在没有#
符号的情况下运行,并且当表名为#Names
时架构成功执行,但当我尝试从表中选择*时,我收到以下消息
无效的对象名称'#NAMES':SELECT * FROM #NAMES
SQL Server 2012是否支持多个插入?
更新:显然在SSMS 2012上访问2005服务器....
SELECT @@VERSION --Returns: Microsoft SQL Server 2005
答案 0 :(得分:9)
使用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
<强> Results 强>:
| NAME1 | NAME2 |
--------------------
| Matt | Matthew |
| Matt | Marshal |
| Matt | Mattison |
这里有一个SSMS 2012截图:
答案 1 :(得分:8)
是的,SQL Server 2012 支持多个插入 - 该功能是在SQL Server 2008 中引入的。
这让我想知道您是否拥有Management Studio 2012,但您确实已连接到SQL Server 2005 实例......
您从SELECT @@VERSION
获得了哪个版本的SQL Server 引擎?