2 回答

TA貢獻1836條經驗 獲得超13個贊
“ddl in tran”選項在臨時數據庫中也需要“打開”。系統管理員或具有 sa_role 的人可以這樣做:
1> use master
2> go
1> sp_dboption tempdb, 'ddl in tran', 'true'
2> go
Warning: Attempting to change database options for a temporary database. Database options must be kept consistent across all temporary databases.
Database option 'ddl in tran' turned ON for database 'tempdb'.
Running CHECKPOINT on database 'tempdb' for option 'ddl in tran' to take effect.
(return status = 0)
正如警告所暗示的那樣,如果您有多個臨時數據庫,這需要在所有臨時數據庫中保持一致。命令完成后,可以使用 sp_helpdb 檢查選項:
1> sp_helpdb
2> go
[stuff deleted]
tempdb 104.0 MB sa 2 Aug 05, 2019 no_recovery 0 NULL
select into/bulkcopy/pllsort, trunc log on chkpt, ddl in tran, mixed log and data, allow wide dol rows
下面是在事務中創建表的示例:
1> use tempdb
2> go
1> begin tran
2> go
1> create table foo ( k int not null, value varchar(25) null)
2> go
1> commit
2> go
1>

TA貢獻1862條經驗 獲得超7個贊
可以使用 (sp_dboption tempdb, 'ddl in tran', 'true'),但將其設置為 true 并不是一個好的做法,它可能會導致 tempdb 中的并發問題。
使用該選項必須小心。
添加回答
舉報