我需要一些幫助來使用遊標和變量來填充查詢。我正在使用SQL Server 2008 R2。使用遊標和變量來運行單獨查詢
我想要做的是用插入填充臨時表,運行通過一列數據生成一個變量,然後將填充一個查詢,將檢查表中的行數。這是我到目前爲止:
IF OBJECT_ID('tempdb..#part_tables') IS NOT NULL DROP TABLE #part_tables
create table #Part_tables
(table_Name nvarchar(100))
Insert INTO #Part_Tables (table_name)
SELECT [InstancesTable] FROM [BAMPrimaryImport].[dbo].[bam_Metadata_Partitions]
WHERE [ArchivingInProgress]=0 and ArchivedTime IS NULL
and creationtime < dateadd(DD,-21,getdate())
GO
Insert INTO #Part_Tables (table_name)
SELECT [RelationshipsTable] FROM [BAMPrimaryImport].[dbo].[bam_Metadata_Partitions]
WHERE [ArchivingInProgress]=0 and ArchivedTime IS NULL
and creationtime < dateadd(DD,-21,getdate())
GO
DECLARE @count_query VARCHAR(MAX)
DECLARE @Value NVARCHAR(100)
SET @Value ='Select Table_Name from #Part_Tables'
SET @count_query ='
select count (*) from @Value with (NOLOCK)'
WHILE 1 = 1
BEGIN
EXEC(@count_query + ' option(maxdop 5) ')
IF @@rowcount < 1 BREAK;
END
如果這將工作,太棒了!如果您有不同的/更好的方式來做到這一點,我將不勝感激任何人可以提供的指導。
這已經寫了這一切[XYPropblem](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。詢問問題,而不是解決方案。 –
我想至少展現我一直在做的事情,以表明我一直在思考和嘗試不同的事情。我可以改變我的問題,只是提出問題,看看提供的解決方案。 – bwilliamson
這是很好的顯示你的嘗試,但在我看來,這個問題是關於它而不是你想解決的實際問題。原諒我,如果我有錯誤的印象。 –