在表设计中执行SELECT语句以设置表列的默认值

问题描述 投票:0回答:1

这里是桌子:

enter image description here

在RegionID的默认属性中,我想执行此SELECT语句以在添加新行时建立单元格的值:

select regionID from tRegion where IsNone = 1

[当我尝试保存表格设计时,我得到了“验证列'RegionID'的默认值时出错。

这是tRegion表:enter image description here

sql sql-server ssms
1个回答
0
投票

Computed Column的限制之一是它不能直接访问其表外的任何列。因此,您也可以创建User Defined Function为:

  -- Create UDF to use in computed column
CREATE FUNCTION UDF_GetDefaultRegionId ()
RETURNS int
AS
BEGIN
  DECLARE @DefRegionId int
  SELECT @DefRegionId = regionID 
  from tRegion 
  where IsNone = 1

  RETURN @DefRegionId
END;

然后在“测试”表中用作:

CREATE TABLE Test
( 
  StoreId int,
  --set default value here:
  RegionId  as ([dbo].UDF_GetDefaultRegionId())
 )  

Sample code here..。希望这有帮助!!

© www.soinside.com 2019 - 2024. All rights reserved.