使用 SQL 函数中的 return 值作为多列的默认值?

Use return value from SQL function as default value on multiple columns?

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

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

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

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

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