我有一個要求將多行插入到table1
中,並同時將一行插入table2
,pkID
table1
和一個來自SP參數的值。將批量行插入到SQL Server 2008中的兩個表中
我創建了一個存儲過程,該存儲過程使用包含要插入到table1
中的行的表值參數執行批量插入。但我有一個問題,將table2
中的行插入到中,其中有與table1
對應的Id(標識)以及我已經通過的參數值。
有沒有人實施過這個,或者有什麼好的解決方案呢?
CREATE PROCEDURE [dbo].[oSP_TV_Insert]
@uID int
,@IsActive int
,@Type int -- i need to insert this in table 2
,@dTableGroup table1 READONLY -- this one is a table valued
AS
DECLARE @SQL varchar(2000)
DECLARE @table1Id int
BEGIN
INSERT INTO dbo.table1
(uID
,Name
,Contact
,Address
,City
,State
,Zip
,Phone
,Active)
SELECT
@uID
,Name
,Contact
,Address
,City
,State
,Zip
,Phone
,Active
,@G_Active
FROM @dTableGroup
--the above query will perform batch insert using the records from dTableGroup which is table valued
SET @table1ID = SCOPE_IDENTITY()
-- this below will perform inserting records to table2 with every Id inserted in table1.
Insert into table2(@table1ID , @type)
你能後的代碼,你認爲什麼是不正常?如果您在獲取插入記錄的標識值方面存在問題,那麼'INSERT'具有'OUTPUT'子句,它將爲您提供該值。 – a1ex07
如果我已經正確理解你並且你在2008年看到[使用merge..output獲取source.id和target.id之間的映射](http://stackoverflow.com/questions/5365629/using-merge-output- to-get-mapping-between-source-id-and-target-id) –
是的,馬丁,你是對的。 – user335160