带/不带游标的简单Sql过程

带/不带游标的简单Sql过程,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,请帮助我完成一个简单的过程,比如说在Sql Server上(2005年、2008年,没关系) 我有1000行的tabledbo.[columns],它们都是数据库中某些特定表名的名称 底线是我需要创建一个过程来解析所有1000行表, 对于在dbo.[columns]中找到的每个表名,执行以下操作 select: select count(*), ''''+[column_name]+'''' from dbo.[column_name] 结果应该是这样的: count(*) table_

请帮助我完成一个简单的过程,比如说在Sql Server上(2005年、2008年,没关系)

我有1000行的table
dbo.[columns],它们都是数据库中某些特定表名的名称

底线是我需要创建一个过程来解析所有1000行表, 对于在dbo.[columns]中找到的每个表名,执行以下操作

select: select count(*), ''''+[column_name]+'''' from dbo.[column_name]
结果应该是这样的:

count(*)    table_name:
100          employees 
0            ex_employees
25           addresses
10           birthdays
有什么提示吗

提前感谢,,
Bogdan可能不是你在问什么,但应该得到我认为你想要的结果。您可以使用系统视图获取每个表的行数,而无需运行
count(*)

*第二个问题应该更精确


将此查询与您的
dbo.[columns]
进行内部联接可以仅筛选所需表的结果。

使用
光标尝试此操作,然后

SELECT  COUNT(Column_With_List_Of_Table_Names_Here)
        , Column_With_List_Of_Table_Names_Here
FROM    YourDatabase.dbo.YourTable
GROUP BY Column_With_List_Of_Table_Names_Here;
SELECT i.rowcnt, o.name FROM sysindexes i
LEFT JOIN sys.objects o ON i.id = o.object_id
WHERE indid <2
ORDER BY name
SELECT SUM (row_count) AS ROWS, o.Name AS TableName
FROM sys.dm_db_partition_stats s
LEFT JOIN sys.objects o ON s.object_id = o.object_id AND (index_id=0 or index_id=1)
GROUP BY o.Name
CREATE TABLE #temp(count_ int,table_name varchar(50))
DECLARE @column_Name VARCHAR(50)
DECLARE @query VARCHAR(500)

  DECLARE table_cursor CURSOR FOR
  SELECT [column_name] from dbo.[column_name]
  OPEN product_cursor
    FETCH NEXT FROM product_cursor INTO @column_Name

    WHILE @@FETCH_STATUS = 0
    BEGIN

    SET @query='INSERT INTO #temp SELECT'+ @column_Name+',COUNT(*) FROM'+  @column_Name

    EXEC sp_executesql @SQLStatement=@query
    /*this will insert the coresponding table name and its row count to #temp*/

    END

    CLOSE product_cursor
    DEALLOCATE product_cursor


select  * from #temp