使用IF NOT EXISTS创建函数

时间:2015-09-07 10:02:07

标签: sql-server reporting-services stored-functions

首先发布在这里......

我有许多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

当我开始这个时,我得到:“创建函数必须是批处理中唯一的语句。”

有人可以帮我吗?

由于 利

1 个答案:

答案 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