【发布时间】:2015-04-18 20:46:34
【问题描述】:
我正在尝试通过 DDL 触发器来更改数据库,该触发器将在创建时触发。但是我收到以下错误。
CREATE TRIGGER ddl_trig_database
ON ALL SERVER
FOR CREATE_DATABASE
AS
declare @dbname as nvarchar(100)
declare @sql as nvarchar(max)
select @dbname =
CAST(eventdata().query(
'/EVENT_INSTANCE/DatabaseName[1]/text()'
) as NVarchar(128))
select @sql = N'SET IMPLICIT_TRANSACTIONS OFF
ALTER DATABASE ' + @dbname+ N' SET COMPATIBILITY_LEVEL = 110
SET IMPLICIT_TRANSACTIONS ON'
exec (@sql)
GO
create database test
错误:
消息 226,第 16 级,状态 6,第 22 行
多语句事务中不允许使用 ALTER DATABASE 语句。 声明已终止。
我在 Windows 2012 上使用 SQL Server 2014。
【问题讨论】:
标签: sql sql-server sql-server-2014