我有这个(简化的)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语句。我说的对吗?
很遗憾,您不能处理DML工作流程中的某些DDL脚本(创建,更改,删除)。
使用动态SQL是处理它的唯一方法。
这里是一个示例:
DECLARE @SQL nvarchar(1000)
SET @SQL = 'SELECT ProductID,Name,ProductNumber FROM SalesLT.Product'
EXEC (@SQL)