这可能是一件非常微不足道的事情,但我似乎无法弄清楚为什么它无法正常工作:
基本上,这有效:
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做了好几千次。
答案 0 :(得分:3)
SQL Server Table Value Constructor (Transact-SQL)
是在SQL Server 2008中引入的。
DECLARE @names TABLE (name NVARCHAR(100));
INSERT INTO @names
VALUES
('John'),
('Jane');
任何旧版本,您需要一次使用单行插入
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)都支持插入语句的逗号分隔语法。