SQL事务,更新2个表? [英] SQL Transaction, updating 2 tables?

查看:55
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆