SQL系统查询挂起

时间:2013-11-18 13:35:36

标签: sql sql-server sql-server-2005

运行查询,列出所有数据库中的所有表。但是,它会挂起并且无法完成:

DECLARE @TableList TABLE (  ServerName VARCHAR(50),
                DatabaseName VARCHAR(50),
                SchemaName VARCHAR(50),
                TableName VARCHAR(50) )

DECLARE @SQL VARCHAR(250)
SET @SQL =
'SELECT 
    @@SERVERNAME, ''?'', s.name, t.name 
 FROM
     [?].sys.tables t 
 INNER JOIN sys.schemas s 
 ON t.schema_id = s.schema_id
'

INSERT INTO @TableList
    EXEC sp_msforeachdb @SQL

SELECT * FROM @TableList
WHERE TableName LIKE '%%'
ORDER BY DatabaseName, SchemaName, TableName

如果我更改代码的动态SQL部分以选择TOP 350行,则代码完成。然而,除此之外(甚至是1),查询将挂起。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

完美无瑕,无需任何改变。你有一些特定的错误吗?我有一个错误引用databasename,因为我们的一些数据库有超过50个char名称。也许这就是你遇到的问题之一。

可能是锁定/阻止问题?