テーブルMyTableがすでに存在すると仮定すると、「In catch」が最初のステートメントに出力され、2番目のステートメントには出力されないのはなぜですか。
重複するテーブル名ではエラーをキャッチしているようですが、重複する列名ではエラーをキャッチしていないようです
初め:
BEGIN TRY
BEGIN TRANSACTION
CREATE TABLE MyTable (id INT)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
PRINT 'in Catch'
ROLLBACK TRANSACTION
END CATCH
2番:
BEGIN TRY
BEGIN TRANSACTION
ALTER TABLE MyTable ADD id INT
COMMIT TRANSACTION
END TRY
BEGIN CATCH
PRINT 'in Catch'
ROLLBACK TRANSACTION
END CATCH