这些陈述之一不应该奏效而失败吗?

直觉表明语句2 应该失败,因为 int 后有一个逗号,并且未列出第二列。

但是最后一个列数据类型之后的工作和尾部逗号“,”都没有区别。

-- Statement 1
CREATE TABLE dbo.MyTable1( col1 int);

-- Statement 2
CREATE TABLE dbo.MyTable2( col1 int,);

但是(这是预期的):最后一个字段之后的两个逗号“,”确实会导致失败:
-- Statement 3
CREATE TABLE dbo.MyTable3( col1 int,,);

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ','.

测试表明,它不仅是允许通过的最后一个字段之后的任何字符。例如,这失败了:
-- Statement 3
CREATE TABLE dbo.MyTable3( col1 int ~);

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '~'.

也许SQL Server正在“节省席位”?主键也许?我真的不知道

我正在使用Microsoft SQL Server 2008 R2(SP1)-10.50.2500.0(X64)。

最佳答案

参见http://connect.microsoft.com/SQLServer/feedback/details/273348/trailing-comma-allowed-in-create-table:



Microsoft将此视为错误,但较小。

关于tsql - 使用T-SQL创建表时,为什么最后一个字段后面的逗号不重要?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20961185/

10-11 02:58
查看更多