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