0

在 php 中,我一次执行多个查询,查询写在一个大变量中。这些是插入查询,我必须检索在数据库中创建的记录的每个自动增量“id”。怎么做 ?检索到的结果集似乎并没有保留每个结果,而是只保留一个。

4

1 回答 1

0

我认为您正在谈论插入语句中的 OUTPUT 子句。

http://msdn.microsoft.com/en-us/library/ms177564.aspx

CREATE TABLE #t (id int identity (1, 1), f1 nvarchar(20 ) ) --the table that has the identities
CREATE TABLE #ids ( id int ) --the table to store the inserts into table #t

INSERT INTO #t ( f1 ) OUTPUT INSERTED.id INTO #ids SELECT N'AAAA'
INSERT INTO #t ( f1 ) OUTPUT INSERTED.id INTO #ids SELECT N'BBBB'
INSERT INTO #t ( f1 ) OUTPUT INSERTED.id INTO #ids SELECT N'CCCC'

SELECT * FROM #t

SELECT * FROM #ids

另一种方法是使用@@IDENTITYSQL Authority 链接讨论/比较它们SCOPE_IDENTITY()

CREATE TABLE #t (id int identity (1, 1), f1 nvarchar(20 ) )
CREATE TABLE #ids ( id int )

INSERT INTO #t ( f1 ) SELECT N'AAAA'
INSERT INTO #ids SELECT @@IDENTITY --OR you can use SELECT SCOPE_IDENTITY()

INSERT INTO #t ( f1 ) SELECT N'BBBB'
INSERT INTO #ids SELECT @@IDENTITY --OR you can use SELECT SCOPE_IDENTITY()

INSERT INTO #t ( f1 ) SELECT N'CCCC'
INSERT INTO #ids SELECT @@IDENTITY --OR you can use SELECT SCOPE_IDENTITY()

SELECT * FROM #t
SELECT * FROM #ids
于 2013-07-25T13:24:05.567 回答