将SELECT *语句的结果分配给变量SQL SERVER

时间:2014-12-08 07:19:15

标签: sql-server variables

我有一个700行的表。我想要做的是,执行`select * from table_name'对它进行查询以及我将要将其存储在变量中的任何结果,在完成之后,是否要遍历每个记录以进行处理?我该如何实现?任何帮助?

谢谢你, -saurabh

2 个答案:

答案 0 :(得分:1)

你想要一些名为cursors

的东西
  

光标

使用游标来获取查询返回的行。您可以使用查询将行检索到游标中,然后从游标中一次获取一行。

步骤

  1. 声明变量以存储行的列值。
  2. 声明包含查询的游标。
  3. 打开光标。
  4. 一次从游标中获取行,并将列值存储在步骤1中声明的变量中。然后,您将对这些变量执行某些操作;例如在屏幕上显示它们,在计算中使用它们等等。
  5. 关闭光标。
  6. 希望这可以帮助你cursor

答案 1 :(得分:0)

这是我用

开头的例子
USE pubs
GO

-- Declare the variables to store the values returned by FETCH.
DECLARE @au_lname varchar(40), @au_fname varchar(20)
DECLARE authors_cursor CURSOR FOR
SELECT au_lname, au_fname FROM authors
--WHERE au_lname LIKE 'B%'
ORDER BY au_lname, au_fname

OPEN authors_cursor

-- Perform the first fetch and store the values in variables.
-- Note: The variables are in the same order as the columns
-- in the SELECT statement. 

FETCH NEXT FROM authors_cursor
INTO @au_lname, @au_fname

-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN

-- Concatenate and display the current values in the variables.
PRINT  @au_fname

-- This is executed as long as the previous fetch succeeds.
FETCH NEXT FROM authors_cursor
INTO @au_lname, @au_fname
END

CLOSE authors_cursor
DEALLOCATE authors_cursor
GO