T-SQL-关键字'Trigger'附近的语法不正确,并且期望EXTERNAL

问题描述 投票:0回答:1

我有这个(简化的)t-sql脚本:

IF NOT EXISTS (
        SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20191025090642_DbName_v6'
)
BEGIN
    CREATE TRIGGER [dbo].[CREATEID] ON [dbo].[LibNumber]
    INSTEAD OF INSERT
    AS
    BEGIN
        SELECT 1
        -- Some other stuff...
    END 
END;
GO

我得到:

Incorrect syntax near the keyword 'TRIGGER'.

Incorrect syntax near 'Begin'. Expecting EXTERNAL

我为什么错了?看起来是IF NOT EXISTS语句。我说的对吗?

sql-server database tsql
1个回答
1
投票

很遗憾,您不能处理DML工作流程中的某些DDL脚本(创建,更改,删除)。

使用动态SQL是处理它的唯一方法。

这里是一个示例:

DECLARE @SQL nvarchar(1000)
SET @SQL = 'SELECT ProductID,Name,ProductNumber FROM SalesLT.Product'
EXEC (@SQL)
© www.soinside.com 2019 - 2024. All rights reserved.