如何将选择列存储在变量中?

时间:2011-02-25 17:57:21

标签: sql-server sql-server-2008

如何将select列存储在变量中?

试试这个但是给我一个错误语法不正确

declare @EmpId int
SELECT  dbo.Employee.Id as @EmpId FROM  dbo.Employee

3 个答案:

答案 0 :(得分:42)

select @EmpID = ID from dbo.Employee

或者

set @EmpID =(select id from dbo.Employee)
  

请注意,select查询可能会返回多个值。所以你可以写一个必须返回一行的选择查询。

如果要向一个变量(MS SQL)添加更多列,可以选择使用表定义变量

DECLARE @sampleTable TABLE(column1 type1)
INSERT INTO @sampleTable
SELECT columnsNumberEqualInsampleTable FROM .. WHERE ..

由于Oracle和其他人不存在表类型变量,您必须定义它:

DECLARE TYPE type_name IS TABLE OF (column_type | variable%TYPE | table.column%TYPE [NOT NULL] INDEX BY BINARY INTEGER;

- 然后声明此类型的TABLE变量:variable_name type_name;

- 为TABLE变量赋值:variable_name(n).field_name := 'some text';

- 其中'n'是指数值

答案 1 :(得分:2)

假设这样的查询会返回一行,您可以使用

select @EmpId = Id from dbo.Employee

或者

set @EmpId = (select Id from dbo.Employee)

答案 2 :(得分:1)

这是为变量赋值的方法:

SELECT @EmpID = Id
  FROM dbo.Employee

但是,上面的查询返回了多个值。您需要添加WHERE子句才能返回单个Id值。