Я создал хранимую процедуру SQL Server 2005, которая находит зависимые объекты в определенной таблице.
Я хочу запустить эту хранимую процедуру для другой базы данных и для разных таблиц.Я создал курсор для этого.
Когда я пишу USE @dbname
, он пытается найти хранимую процедуру в @dbname, а не в текущей базе данных.
Может кто-нибудь, пожалуйста, помогите мне с тем, какнаписать эту команду в курсоре?
DECLARE name_cur CURSOR FOR
SELECT db_name, obj_name from Stats_Usage
WHERE last_user_update > '2011-06-01' ORDER BY db_name
DECLARE @tableName NVARCHAR (800)
DECLARE @dbName NVARCHAR(800)
DECLARE @sql NVARCHAR(900)
OPEN name_cur
FETCH name_cur INTO @dbName, @tableName
WHILE @@Fetch_Status = 0
BEGIN
SET @sql = 'USE '+@dbName +' EXEC proc_depend ' + @tableName
EXEC (@sql)
FETCH name_cur INTO @dbName, @tableName
END
CLOSE name_cur
DEALLOCATE name_cur
GO