使用SQL函数的返回值作为多列的默认值?

时间:2017-03-07 16:29:07

标签: sql-server sql-server-2008-r2 sql-function

我有一张桌子,我想设置两个列'默认值为相同的值。我正在使用生成唯一值的SQL函数。我可以使用以下函数轻松地为列的一个设置列默认值:

[PreCode] NVARCHAR(20) NOT NULL DEFAULT([dbo].GetPreCode()),

但是我如何在其他列中使用相同的值?我假设如果我使用与上面相同的语法用于另一列,则该函数将生成另一个唯一值,而不是使用为第一列生成的值。如何通过单次调用SQL函数使两列具有相同的默认值?

1 个答案:

答案 0 :(得分:1)

您可以使用INSTEAD OF INSERT触发器来设置它,或者您可以将第二列设为计算列,并将值设置为第一列的值。

您可以尝试将第二列的默认值设置为第一列的值,但是我不确定它是否会在设置第二列之前等待第一列的设置,或者它是否会将其设置为NULL之前将值应用于第一个。