0

我在一个数据库中工作,它有大约 10 个DEFAULT约束分散在两个或三个不同的表中,我需要编写一个存储过程来接收所有这些属性的参数值。但是,如果没有收到任何值,我希望这些参数采用相应表中的默认值。知道没有简单的方法可以做到这一点,我考虑编写返回默认值的自定义 UDF,将约束添加为DEFAULT (dbo.SomeFunction()) FOR [Attribute]并添加= dbo.SomeFunction()为每个参数的默认值。但是,我想问一下实现这一目标的最佳方法是什么:

1)为每个属性编写一个UDF,简化执行但最终得到10个不同的函数;或者

2)写一个单并在不同的表/属性对上dbo.GetDefault(TableName NVARCHAR(32), AttributeName NVARCHAR(32)使用IF ... ELSE ...或。SWITCH

你怎么看?

4

1 回答 1

1

默认情况下,您应该有一个 udf。

  • 数据类型将不一样
  • 随着代码的发展,您最终会在计算列或模式绑定视图中产生依赖关系:您需要另一个,更改会很麻烦
于 2011-06-13T08:54:43.980 回答