简短的Sql插入语句?

Adi*_*dir 1 mysql sql sql-server

在MySql中,我可以有一个带有自动增量列的表并以这种方式插入:

INSERT INTO tbl VALUES(null, "bla", "bla");
Run Code Online (Sandbox Code Playgroud)

使用Microsoft SQL Server Express可以执行任何操作吗?

代替这个:

INSERT INTO tbl(`v1`, `v2`) VALUES ("bla", "bla");  
Run Code Online (Sandbox Code Playgroud)

谢谢

Dav*_*all 5

在Sql Server中,不需要为标识列指定值(我猜这是mysql中的null所做的事情)。

因此,用于插入表的简短语法为:

Insert Into tbl Values('bla', 'bla')
Run Code Online (Sandbox Code Playgroud)

无论列是否被声明为表的主键,此方法都有效,并且也适用于表中列的任何位置。也就是说,即使列位于中间,如下所示:

Create Table tbl (
    [Col1] [varchar](50) NULL,
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Col2] [varchar](50) NULL
)
Run Code Online (Sandbox Code Playgroud)

Sql Server仍将很高兴地解释insert语句并注意标识插入。

正如其他张贴者所提到的,在Sql Server中,您实际上需要发出Set Identity_Insert tbl On命令以能够为标识列指定值。