SQL事务,更新2个表? [英] SQL Transaction, updating 2 tables?
本文介绍了SQL事务,更新2个表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我在UPDATE语句中遇到了困难。我没有在Google上找到有关如何在SQL命令中更新2个表的帮助。我知道根据我读过的内容,这在理论上是不可能的,但我读过它可以通过交易来完成。这是我到目前为止的发言,这是行不通的。如果您能提供帮助,请重新编写声明,以便我可以直观地看到解决方案。谢谢!
So I am having a tough time with this UPDATE statement. I am not finding much help on Google about how to UPDATE 2 tables in a SQL command. I know it''s not theoretically possible based on what I''ve read, but I''ve read it can be done through a transaction. Here is my statement so far, that isn''t working. If you can help, please re-write the statement so I can visually see the solution. Thanks!
BEGIN TRANSACTION
UPDATE [Company] SET [CompanyName] = @CompanyName, [CompanyRegistry] = @CompanyRegistry
FROM [Company] T1
WHERE [T1.CompanyID] = @CompanyID
UPDATE [Users] SET [FirstName] = @FirstName, [LastName] = @LastName, [Address] = @Address, [City] = @City, [State] = @State, [ZipCode] = @ZipCode, [PhoneNumber] = @PhoneNumber, [EMail] = @EMail
FROM [Users] T2
WHERE [T2.UsersID] = @UsersID
COMMIT
推荐答案
尝试
Try
BEGIN TRY
BEGIN TRANSACTION
UPDATE [Company]
SET [CompanyName] = @CompanyName,
[CompanyRegistry] = @CompanyRegistry
FROM [Company] T1
WHERE [T1.CompanyID] = @CompanyID
UPDATE [Users]
SET [FirstName] = @FirstName,
[LastName] = @LastName,
[Address] = @Address,
[City] = @City,
[State] = @State,
[ZipCode] = @ZipCode,
[PhoneNumber] = @PhoneNumber,
[EMail] = @EMail
FROM [Users] T2
WHERE [T2.UsersID] = @UsersID
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
--Error Handling
END CATCH
您可能会发现以下文章有用
SQL Server事务和错误处理 [ ^ ]
这篇关于SQL事务,更新2个表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文