【发布时间】:2012-06-28 09:16:52
【问题描述】:
这实际上不是我面临的问题。但我只是想知道第一个 SQL Server 将下面编写的代码中的行视为语法错误,因为列列表末尾有多余的逗号 (,)。但它运行代码很好。有谁知道原因吗?
CREATE TABLE #TEMP(COL1 INT,COL2 VARCHAR,)
INSERT INTO #TEMP VALUES (1,'A')
SELECT * FROM #TEMP
DROP TABLE #TEMP
【问题讨论】:
-
当您不必省略逗号时,我认为这是一种简化动态 sql 的设计决策。类似于为什么 LINQ 在 C# 中允许这种匿名类型:
new {a=1,b=2,c=3,}。 -
the grammar 不应该允许,但mostly harmless 应该不允许
-
@Martin Smith:这取决于图中的 n 是否包含 0。语法中没有定义(至少我没有找到)。
-
@Martin:你能回答一下吗?
标签: sql-server