【发布时间】:2014-07-17 21:54:18
【问题描述】:
下面的脚本改变了函数 [dbo].[RetrieveDefaultValueForColumn1]。但是,由于此函数在两个表(表 1 和表 2)中用作 Column1 的默认值,因此必须暂时删除并重新添加这些默认约束。像这样:
-- drop dependent default constraints
ALTER TABLE [dbo].[Table1] DROP CONSTRAINT [DF_Table1_Column1];
GO
ALTER TABLE [dbo].[Table2] DROP CONSTRAINT [DF_Table2_Column1];
GO
-- alter function
ALTER FUNCTION [dbo].[RetrieveDefaultValueForColumn1] ()
RETURNS SMALLINT
AS
BEGIN
RETURN 1
END
GO
-- re-add dependent default constraints
ALTER TABLE [dbo].[Table1]
ADD CONSTRAINT [DF_Table1_Column1] DEFAULT ([dbo].[RetrieveDefaultValueForColumn1]()) FOR [Column1];
GO
ALTER TABLE [dbo].[Table2]
ADD CONSTRAINT [DF_Table2_Column1] DEFAULT ([dbo].[RetrieveDefaultValueForColumn1]()) FOR [Column1];
GO
如果我要使用 SQL SMO“脚本/依赖项发现”功能以编程方式生成此脚本,如何识别依赖于该函数的所有默认约束?
【问题讨论】:
标签: sql sql-server sql-server-2008 smo