2

我想将SELECT查询作为参数传递给STORED PROCEDURESQL Server 2008。
在该 sp 中执行该查询并存储到临时表,然后我想在该临时表的 2 字段上循环游标。

那我该怎么做??

主要是这部分:execute that query and store to temp table

编辑 :

询问 :

SELECT * FROM SomeView WHERE COL1 = '1' AND COL = GETDATE() ORDER BY COL0

SomeView 中有很多字段,但我只想要 2 个:COLS1、CLOS2 我只想在这 2 个字段上循环 CURSOR

4

1 回答 1

1

以下是将动态 SQL 查询的查询结果存储到临时表的方法:

DECLARE @sql NVARCHAR(1000)
SET @sql = 'SELECT COL1, COL2 FROM SomeView WHERE COL1 = ''1'' AND COL = GETDATE() ORDER BY COL0'

CREATE TABLE #temp(col1 <yourDataType>, col2 <yourDataType>)
INSERT INTO #temp EXEC sp_executesql @sql

但是您应该真正考虑替代游标,游标会降低性能,游标逐行操作,而查询执行基于集合的操作。SQL Server 针对基于集合的数据访问进行了优化。如果您可以编写查询,请不要使用游标。

于 2013-02-08T08:38:09.800 回答