将Select命令作为参数传递并在临时表中执行

时间:2013-02-08 08:04:56

标签: asp.net .net sql sql-server-2008

我想将SELECT查询作为参数传递给SQL Server 2008中的STORED PROCEDURE 在那个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 我想仅在那两个字段上循环CURSOR

1 个答案:

答案 0 :(得分: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针对基于集合的数据访问进行了优化。如果您可以编写查询,请不要使用游标。