我通过添加新列来更改表,此列必须具有从另一个表中的单个条目获取的默认值
ALTER TABLE Bonus_Profile
ADD Orgunit varchar(50) NOT NULL
DEFAULT (select top 1 OrgUnit from OrgUnits where ReportTo is null)
以上陈述给出了Subqueries are not allowed in this context. Only scalar expressions are allowed.
和错误
应该使用什么来获取OrgUnit
答案 0 :(得分:1)
首先创建无参数标量函数
CREATE FUNCTION ReturnOrgUnit ()
RETURNS VARCHAR(50)
BEGIN
Declare @orgUnit varchar(50)
Select TOP 1 @orgUnit= OrgUnit from OrgUnits where ReportTo is null
Return @orgUnit
END
然后你可以在alter statement
中使用上面的udfALTER TABLE Bonus_Profile
ADD Orgunit varchar(50) NOT NULL
DEFAULT (ReturnOrgUnit())