如何编写使用由检查约束引用的用户定义函数的T-SQL升级脚本
- 论坛
- 如何编写使用由检查约束引用的用户定义函数的T-SQL升级脚本
21 浏览
如何编写使用由检查约束引用的用户定义函数的T-SQL升级脚本
我正在尝试编写一个脚本,无论用户是否已定义函数,都可以运行。根据此链接,我有以下内容:
IF OBJECT_ID('dbo.fn_myFunc') IS NOT NULL DROP FUNCTION dbo.fn_myFunc; go CREATE FUNCTION fn_myFunc ( ... ) RETURNS BIT AS BEGIN ... END go
问题是,之后我有
ALTER TABLE my_table ADD CONSTRAINT my_table_chk_myFunc CHECK (dbo.fn_myFunc(...) = 1) go
所以当发生DROP FUNCTION
时,我会得到以下错误信息:
无法删除函数'dbo.fn_myFunc',因为它被对象'my_table_chk_myFunc'引用。
我尝试过使用...IS NOT NULL DROP... CREATE FUNCTION
而不是使用...IS NULL CREATE... ALTER FUNCTION
,但是要么我语法写错了,要么它不起作用。
我应该如何解决这个问题?