2015-12-30 55 views
5

在MySQL以下工作:SQL服务器:选择多列到多个变量在存储过程中

DECLARE myInt INT(20); 
DECLARE myDate DATETIME; 

SELECT someInt, someDate 
INTO myInt, myDate 
FROM someTable 
WHERE myName = someName 

是否有可能做这样的事情在SQL Server?

SQL Server对INTO行f中尝试使用local @variables的“语法错误”提出投诉。

回答

5

不知道我是否理解你的问题。如果你想一次设置多个变量:

DECLARE @myInt INT; 
DECLARE @myDate DATETIME; 

SELECT @myInt = someInt, @myDate = someDate 
FROM someTable 
WHERE myName = someName 

还要注意,如果选择读取许多行的变量将保持最后行的值。实际上,变量将为每个取出的行设置。

还请注意SQL Server您没有参数Int声明。也许你想用Decimal(20)

+0

要声明关于'int'声明的注释,在SQL Server中,int是32位整数,而bigint是64位整数,所以如果你需要不同的精度,那么你可以使用'decimal'类型。 – BateTech

1

是的,像下面这样做。此外,前缀@用于声明参数的符号。

DECLARE @myInt INT; 
DECLARE @myDate DATETIME; 

SELECT @myInt = someInt, @myDate = someDate 
FROM someTable 
WHERE myName = someName