我需要一些帮助来使用游标和变量来填充查询。我正在使用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
这是很好的显示你的尝试,但在我看来,这个问题是关于它而不是你想解决的实际问题。原谅我,如果我有错误的印象。 –