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