gpt4 book ai didi

sql-server - T-SQL : sp_depends with a cursor

转载 作者:搜寻专家 更新时间:2023-10-30 22:35:18 25 4
gpt4 key购买 nike

我的数据库中有一堆 View ,我想列出它们的依赖项。目前,我正在使用“sp_depends”存储过程来执行此操作。为了加快这个过程,我试图在遍历 View 列表的游标中使用 sp_depends 存储过程。但是,我没有任何运气,我花了很多时间来尝试“霰弹枪”修复它。以下是我到目前为止所得到的。

DECLARE @ViewNames TABLE
(
ViewName VARCHAR(255)
)
INSERT INTO @ViewNames
select name from [AMF_Article].sys.views

declare @tableCursor cursor,
@viewName varchar(100);
set @tableCursor = cursor for select ViewName from @ViewNames

open @tableCursor
fetch next from @tableCursor into @viewName
while(@@fetch_status = 0)
begin

declare @sql varchar(max)
set @sql = 'sp_depends ''[dbo].' + @viewName + ''
PRINT @sql
exec @sql

fetch next from @tableCursor into @viewName
end

我认为引用与 EXEC 调用相结合会发生一些事情。我无法让我的单引号匹配,当我这样做时,它仍然告诉我不。当我运行语句时

sp_depends '[dbo].[V_AMF_Distinct_Products]'

一切都很好,但在一个循环中,不是那么多。

非常感谢任何帮助。

最佳答案

这是一种使用 sys.views 构建动态 sql 字符串的方法。这里不需要游标。

declare @SQL nvarchar(max) = ''

select @SQL = @SQL + 'exec sp_depends ''' + QUOTENAME(name) + ''';'
from sys.views

exec sp_executesql @SQL

关于sql-server - T-SQL : sp_depends with a cursor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38404134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com