2017-01-11 78 views
0

我有两个名为user_info和food_info的表,user_info有一个名为user_id的自动递增属性。现在我想通过下图所示的事务一次性插入两个表中,我已经手动完成了这一步,现在我想通过事务查询来实现此目的。 注意 food_info的user_id不是自动递增的。如何将自动递增的ID传递到另一个表

enter image description here

+0

可能重复http://stackoverflow.com/questions/4565195/mysql-how-to-insert-into-multiple-tables-with-foreign-keys –

+0

你使用MySQL或MS SQL Server? (不要标记不涉及的产品。) – jarlh

回答

0
-- Declare Variables 
DECLARE @ErrorMessage NVARCHAR(4000), 
    @ErrorSeverity INT, 
    @ErrorState INT, 
    @Last_Inserted_ID INT; 

-- Try Catch Block 
BEGIN TRY 

-- Start Transaction 
    BEGIN TRANSACTION 
    INSERT INTO [dbo].[user_info] 
      ([user_name] 
      ,[pass]) 
     VALUES 
       ('U11' 
       ,'U12') 

    -- Returns the last identity value inserted 
    SET @Last_Inserted_ID = @@IDENTITY; 

    INSERT INTO [dbo].[food_info] 
       ([user_id] 
       ,[food_type]) 
     VALUES 
       (@Last_Inserted_ID 
       ,'Food1') 

    PRINT 'Values inserted successfully...' 

COMMIT TRANSACTION 
END TRY 
BEGIN CATCH 
    SELECT 
     @ErrorMessage = ERROR_MESSAGE(), 
     @ErrorSeverity = ERROR_SEVERITY(), 
     @ErrorState = ERROR_STATE(); 

    RAISERROR (
     @ErrorMessage, 
     @ErrorSeverity, 
     @ErrorState  
     ); 
    ROLLBACK TRANSACTION 
END CATCH