如何从select语句返回标量变量

时间:2014-06-20 09:29:29

标签: sql

我通过添加新列来更改表,此列必须具有从另一个表中的单个条目获取的默认值

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

的标量变量

1 个答案:

答案 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

中使用上面的udf
ALTER TABLE Bonus_Profile 
ADD Orgunit varchar(50) NOT NULL
DEFAULT (ReturnOrgUnit())