Sql server 2008 是否使用SQL存储过程将我的GUID选择到变量中?

Sql server 2008 是否使用SQL存储过程将我的GUID选择到变量中?,sql-server-2008,stored-procedures,select,guid,uniqueidentifier,Sql Server 2008,Stored Procedures,Select,Guid,Uniqueidentifier,我在SQLServer2008中有一个存储过程,我想将我选择的GUID存储到局部变量中以供进一步使用。我尝试如下(以及其他几个变体),但在“@myvars”附近出现语法错误 DECLARE @myvars uniqueidentifier; SELECT ID INTO @myvars FROM Device WHERE DeviceID=@DeviceID 感谢您的帮助。谢谢 试试看: DECLARE @myvars uniqueidentifier --declare the local

我在SQLServer2008中有一个存储过程,我想将我选择的GUID存储到局部变量中以供进一步使用。我尝试如下(以及其他几个变体),但在“@myvars”附近出现语法错误

DECLARE @myvars uniqueidentifier;
SELECT ID 
INTO @myvars
FROM Device
WHERE DeviceID=@DeviceID
感谢您的帮助。谢谢

试试看:

DECLARE @myvars uniqueidentifier --declare the local variable to store value in

SELECT @myvars=ID                --assign's the ID column into the variable
FROM Device
WHERE DeviceID=@DeviceID
快速测试:

DECLARE @myvars uniqueidentifier --declare the local variable to store value in
declare @x table (id uniqueidentifier, valueOf varchar(4))

insert @x values (NEWID (),'aa')
insert @x values (NEWID (),'bb')
insert @x values (NEWID (),'cc')

SELECT @myvars=ID                --assign's the ID column into the variable
FROM @x
WHERE valueOf='bb'

SELECT @myvars
select * from @x
输出:

------------------------------------
36503FD9-A299-4DC5-A7BD-67605FF47ACE

(1 row(s) affected)

id                                   valueOf
------------------------------------ -------
175DCBF8-C418-4B5B-9270-66C12980D489 aa
36503FD9-A299-4DC5-A7BD-67605FF47ACE bb
E4F075FF-BA4B-4BB5-AD9F-ADB03FE88590 cc

(3 row(s) affected)

我想你只会期待一排?我在想这个。大多数情况下是的,但如果不是这样,那么按下面的方式执行是否仍然有效?否,SQL Server将随机分配n行中的一行。在这种情况下,您可以在表变量中使用OUTPUT子句更好地捕获所有值。工作完美!再次感谢。