Insert Multiple Rows Into Temp Table With SQL Server 2012
本问题已经有最佳答案,请猛点这里访问。
这里的StackOverflow问题,这里和这里都说同样的事情,但我不能让它在SSMS或SQLFiddle中运行
1 2 3 4 5 6 7 8 9 10 11 12 | CREATE TABLE #Names ( Name1 VARCHAR(100), Name2 VARCHAR(100) ) INSERT INTO #Names (Name1, Name2) VALUES ('Matt', 'Matthew'), ('Matt', 'Marshal'), ('Matt', 'Mattison') |
当我执行这是SSMS时,插入失败,并在
Msg 102, Level 15, State 1, Line 10
Incorrect syntax near ','.
这个Fiddle在没有
Invalid object name '#NAMES'.: SELECT * FROM #NAMES
SQL Server 2012是否支持多个插入?
更新:显然在SSMS 2012上访问2005服务器....
1 | SELECT @@VERSION --Returns: Microsoft SQL Server 2005 |
是的,SQL Server 2012支持多个插入 - 该功能是在SQL Server 2008中引入的。
这让我想知道你是否有Management Studio 2012,但你真的连接到SQL Server 2005实例......
你从
使用SQLFiddle时,请确保将分隔符设置为GO。 架构构建脚本也在与运行脚本不同的连接中执行,因此在一个中创建的临时表在另一个中不可见。 这个小提示表明您的代码在SQL 2012中有效且有效:
SQL小提琴
MS SQL Server 2012架构设置:
查询1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | CREATE TABLE #Names ( Name1 VARCHAR(100), Name2 VARCHAR(100) ) INSERT INTO #Names (Name1, Name2) VALUES ('Matt', 'Matthew'), ('Matt', 'Marshal'), ('Matt', 'Mattison') SELECT * FROM #NAMES |
结果:
1 2 3 4 5 | | NAME1 | NAME2 | -------------------- | Matt | Matthew | | Matt | Marshal | | Matt | Mattison | |
这里有一个SSMS 2012截图: