【发布时间】:2018-04-27 07:49:38
【问题描述】:
我有一个 SQL Server 事务,它向表中添加一列,然后向该列添加一些值。它运行完美,但不会提交更改。
我检查了@@trancount,运行查询后它的值为1。
交易出了什么问题?
谢谢!
BEGIN TRANSACTION
ALTER TABLE Table
ADD ColumnName VARCHAR(200) NULL;
GO
BEGIN TRY
UPDATE ColumnName
SET ColumnName = 'some value'
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
END CATCH;
【问题讨论】:
-
为什么在
BEGIN中使用GO...END -
您使用的是哪个 dbms?该代码是特定于产品的。
-
用列名替换表名
-
我用的是MS SQL,没有Go,新添加的列无法识别。
-
我认为
begin transaction应该在GO之后
标签: sql-server tsql transactions commit