0

PHP では一度に複数のクエリを実行していますが、クエリは 1 つの大きな変数に書き込まれます。これらは挿入クエリであり、データベースで作成されたレコードの各自動インクリメント「id」を取得する必要があります。どうやってするの ?取得された結果セットは、個々の結果を保持するのではなく、1 つだけ保持しているようです。

4

1 に答える 1

0

INSERT文からの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

もう1つの方法は、それらを議論/比較するSQL機関リンク@@IDENTITYを使用することです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 に答える