SQL在SQL变量中选择一行并存储

EJC*_*EJC 19 sql stored-procedures sql-server-2005

所以,我正在写这个存储过程,我真的很喜欢SQL.

我的问题是你们:

我可以选择整行并将其存储在变量中吗?

我知道我可以这样做:

declare @someInteger int
select @someInteger = (select someintfield from sometable where somecondition)
Run Code Online (Sandbox Code Playgroud)

但是我可以从中选择整行sometable并将其存储在变量中吗?

Ben*_*thy 32

您可以将字段选择为多个变量:

DECLARE @A int, @B int

SELECT
  @A = Col1,
  @B = Col2
FROM SomeTable
WHERE ...
Run Code Online (Sandbox Code Playgroud)

另一种可能更好的方法是使用表变量:

DECLARE @T TABLE (
  A int,
  B int
)
INSERT INTO @T ( A, B )
SELECT
  Col1,
  Col2
FROM SomeTable
WHERE ...
Run Code Online (Sandbox Code Playgroud)

然后,您可以像常规表一样从表变量中进行选择.


bre*_*dan 6

您可以创建一个与表模式匹配的表变量,并将单行存储在其中:

declare @myrow table(field0 int,field1 varchar(255))
insert into @myrow
select field0,field1 from mytable where field0=1
Run Code Online (Sandbox Code Playgroud)