0
我有两个名为user_info和food_info的表,user_info有一个名为user_id的自动递增属性。现在我想通过下图所示的事务一次性插入两个表中,我已经手动完成了这一步,现在我想通过事务查询来实现此目的。 注意 food_info的user_id不是自动递增的。如何将自动递增的ID传递到另一个表
我有两个名为user_info和food_info的表,user_info有一个名为user_id的自动递增属性。现在我想通过下图所示的事务一次性插入两个表中,我已经手动完成了这一步,现在我想通过事务查询来实现此目的。 注意 food_info的user_id不是自动递增的。如何将自动递增的ID传递到另一个表
-- 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
可能重复http://stackoverflow.com/questions/4565195/mysql-how-to-insert-into-multiple-tables-with-foreign-keys –
你使用MySQL或MS SQL Server? (不要标记不涉及的产品。) – jarlh