首先发布在这里......
我有许多SQL脚本,每次安装SSRS Reporting Suite时都必须手动运行以创建缺少的函数和存储过程。
理想情况下,我想在一段代码中自动执行此操作,因此查看了IF NOT EXIST语句。
我的想法是...检查函数是否退出,如果Y移动到下一个脚本,如果是N,则运行CREATE FUNCTION脚本然后转到下一个脚本:
IF NOT EXISTS
(SELECT * FROM sys.objects
WHERE object_id = OBJECT_ID(N'[report].[fnR_ActiveCustomers]')
AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
CREATE FUNCTION [report].[fnR_ActiveCustomers]
(... etc etc
当我开始这个时,我得到:“创建函数必须是批处理中唯一的语句。”
有人可以帮我吗?
由于 利
答案 0 :(得分:0)
在两者之间使用GO
来分隔批次:
IF NOT EXISTS
(SELECT * FROM sys.objects
WHERE object_id = OBJECT_ID(N'[report].[fnR_ActiveCustomers]')
AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
Go
CREATE FUNCTION [report].[fnR_ActiveCustomers]
(... etc etc