【问题标题】:How do I alter a T-SQL FUNCTION with a dependent default constraint?如何更改具有依赖默认约束的 T-SQL FUNCTION?
【发布时间】:2014-04-02 14:06:49
【问题描述】:

我运行下面的 T-SQL 脚本 (ALTER) 并得到:

Cannot ALTER 'dbo.MyFunction' because it is being referenced by object 'DF_MyTable_SomeValue'

例如,来自这样的语句:

ALTER FUNCTION [dbo].[MyFunction] ()
RETURNS INT
AS
BEGIN
    RETURN 1
END

有没有一种简单的方法来改变具有依赖表 DEFAULT 约束的 FUNCTION?

【问题讨论】:

  • 容易吗?是的。方便的?没那么多。脚本约束。丢弃约束。改变功能。重新应用约束。

标签: tsql user-defined-functions


【解决方案1】:

抱歉,没有简单的方法来做到这一点

在更改 UDF 之前,您确实需要删除引用 UDF 的默认约束。 (或者只是在更新 UDF 引用时更改约束)。

发生这种情况是因为引擎担心您会因为您动态更改默认约束而搞砸事情(该东西应该在插入时计算值,而插入可能会在您更新它时发生)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 2010-11-10
    相关资源
    最近更新 更多