SSMS 2014 -不能在表变量中插入多个值



这可能是我错过的一些非常微不足道的东西,但我似乎无法弄清楚为什么它不工作:

基本上,这是有效的:

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

,但这不是:

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

我得到这个错误:

留言102,第15层,第1州,第5行
','附近语法错误。

为什么这个不行?我已经在SSMS 2008中做过几千次了

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');

这不是SSMS支持什么的问题——SSMS只是把你输入的查询发送给SQL Server,让SQL Server决定语法是否有效。问题是,不是每个版本的SQL Server(例如SQL Server 2005)都支持插入语句的逗号分隔语法。

最新更新