我在一个数据库中工作,它有大约 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
你怎么看?