SSMS 2014 - 无法在表变量中插入多个值

时间:2015-09-30 20:47:28

标签: sql-server tsql sql-server-2005 ssms

这可能是一件非常微不足道的事情,但我似乎无法弄清楚为什么它无法正常工作:

基本上,这有效:

DECLARE @names TABLE (name NVARCHAR(100));

INSERT INTO @names
VALUES ('John');

但这不是:

DECLARE @names TABLE (name NVARCHAR(100));

INSERT INTO @names
VALUES ('John'), ('Jane');

我收到了这个错误:

  

Msg 102,Level 15,State 1,Line 5
  ','。

附近的语法不正确

为什么这不起作用?我用SSMS 2008做了好几千次。

2 个答案:

答案 0 :(得分:3)

SQL Server Table Value Constructor (Transact-SQL)是在SQL Server 2008中引入的。

SQL Server 2008及更高版本

DECLARE @names TABLE (name NVARCHAR(100));
INSERT INTO @names
VALUES
    ('John'),
    ('Jane');

SQL Server 2000及更高版本

任何旧版本,您需要一次使用单行插入

DECLARE @names TABLE (name NVARCHAR(100));
INSERT INTO @names VALUES('John');
INSERT INTO @names VALUES('Jane');

答案 1 :(得分:0)

这不是SSMS支持的问题 - SSMS只是将您输入的查询发送到SQL Server并让SQL Server确定语法是否有效。问题是并非SQL Server的每个版本(例如SQL Server 2005)都支持插入语句的逗号分隔语法。