社区
MS-SQL Server
帖子详情
使用sp_depends查看对象相关性时候,怎么更新数据库对象相关性的信息
vovo2000
2006-06-15 05:49:24
使用sp_depends查看对象相关性时候,有时候因为某些原因无法查出。比如查一个存储过程的相关性时,有时候查不出来,需要Alter一下这个存储过程,或者执行一下这存储过程之后在执行一下sp_depends才能查询出来。
如果有很多存储过程,我怎么样才能一次同时更新这些存储过程的相关性信息啊。
如果可能把出现丢失相关性信息的原因也说明一下,比如什么操作会导致丢失相关性性信息啊。
...全文
352
5
打赏
收藏
使用sp_depends查看对象相关性时候,怎么更新数据库对象相关性的信息
使用sp_depends查看对象相关性时候,有时候因为某些原因无法查出。比如查一个存储过程的相关性时,有时候查不出来,需要Alter一下这个存储过程,或者执行一下这存储过程之后在执行一下sp_depends才能查询出来。 如果有很多存储过程,我怎么样才能一次同时更新这些存储过程的相关性信息啊。 如果可能把出现丢失相关性信息的原因也说明一下,比如什么操作会导致丢失相关性性信息啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vovo2000
2006-06-16
打赏
举报
回复
谢谢邹老大!!马上结帖!!
laoliu666
2006-06-15
打赏
举报
回复
老大就是老大,顶
zjcxc
元老
2006-06-15
打赏
举报
回复
如何一次性更新的问题, 这个有点麻烦, 因为很多情况下不是重新编译一下就可以解决问题的, 而是必须要ALTER一下, 所以不是那么简单.
不过, 还是有一个不是很复杂的方法, 那就是生成脚本, 再执行脚本, 方法如下:
1. 生成脚本
企业管理器--右键你的数据库--所有任务--生成脚本--选择"为所有对象生成脚本", 然后调整一下, 只选择为存储过程生成脚本
然后将脚本保存到一个文件中
2. 创建的脚本的行为是创建存储过程, 我们要把它改成ALTER行为
查询分析器连接到sql服务器, 选择你的数据库, 然后打开刚才生成的脚本文件, 按Ctrl+H打开替换对话框, 将CREATE替换为ALTER
3. 执行脚本完成刷新, 按F5执行修改后的脚本
zjcxc
元老
2006-06-15
打赏
举报
回复
"有时候查不出来,需要Alter一下这个存储过程"
alter 会导致存储过程引用的对象的相关信息被重写, 所以alter 一下之后, 用sp_depends当然就可以查出结果了.
同样用上面的测试示例, 楼主在最后的删除之前做一个ALTER, 然后再查询 EXEC sp_depends, 就会出结果了.
zjcxc
元老
2006-06-15
打赏
举报
回复
--=====================================================
--1. 不会被 sp_depends 查询出来的情况
--=====================================================
/*-- 对象建立的顺序问题
当存储过程引用的对象比存储过程后建立的时候, 就会产生这种情况
一般被视为关联信息丢失
--*/
CREATE PROC dbo.p
AS
SELECT * FROM dbo.tb
GO
CREATE TABLE dbo.tb(id int)
EXEC dbo.p
GO
EXEC sp_depends 'dbo.p'
EXEC sp_depends 'dbo.tb'
GO
DROP TABLE dbo.tb
DROP PROC dbo.p
/*-- 引用的对象删除后再重建
当存储过程引用的对象在删除后重新建立, 这种关联也会丢失
--*/
CREATE TABLE dbo.tb(id int)
GO
CREATE PROC dbo.p
AS
SELECT * FROM dbo.tb
GO
EXEC sp_depends 'dbo.p'
EXEC sp_depends 'dbo.tb'
GO
DROP TABLE dbo.tb
CREATE TABLE dbo.tb(id int)
GO
EXEC sp_depends 'dbo.p'
EXEC sp_depends 'dbo.tb'
GO
EXEC dbo.p
GO
EXEC sp_depends 'dbo.p'
EXEC sp_depends 'dbo.tb'
GO
DROP TABLE dbo.tb
DROP PROC dbo.p
sp_depends
被检查
相关性
的
数据库
对象
。
对象
可以是表、视图、存储过程或触发器 in sql server
sql server http://www.yesky.com/imagesnew/software/tsql/ts_sp_da-di_9qlv.htm
sp_depends
sp_depends
显示有关
数据库
对象
相关性
的
信息
(例如,依赖表或视图的视图和过程,以及视图或过程所依赖的表和视图)。不报告对当前
数据库
以外
对象
的引用。 语法
sp_depends
[ @objname = ] 'object' 参数 [@objname =] 'object' 被检查
相关性
的
数据库
对象
。
对象
可以是表、视图、存储过程或触发器。Object 的数据类型为 varcha...
sql中的sp_helptext、sp_help 、
sp_depends
是什么意思
https://zhidao.baidu.com/question/314820961.html exec sp_helptext addworkerexec sp_help addworkerexec
sp_depends
addworkeraddworker是存储过程名,但这三个显示的
信息
都不同! sp_help 报告有关
数据库
对象
(sysobjects 表中列出的任何
对象
)、...
sql中的sp_helptext、sp_help 、
sp_depends
sp_help: 用于显示参数清单和其数据类型。
sp_depends
: 显示有关
数据库
对象
相关性
的
信息
(例如,依赖表或视图的视图和过程,以及视图或过程所依赖的表和视图)。不报告对当前
数据库
以外
对象
的引用。 语法
sp_depends
[ @objname = ] 'object' 参数 [@objname =] 'object' 被检查
相关性
的
数据库
对象
。
对象
可以是表、视图、存储过程或触发...
看你知道不知道之-用好
sp_depends
前几天检查一个兄弟写的存储过程,我想知道这个存储过程到底涉及到几个表,与我要求的表是否一致,是否有缺失,怎么办呢?难道靠人的眼睛一点一点看吗?这个到不麻烦?但是如果想知道都有那些表被读写过,哪些表被写过。。。。这不是很麻烦吗?有没有好的办法呢?答案:
使用
sp_depends
。MSDN内容:
sp_depends
显示有关
数据库
对象
相关性
的
信息
(例如,依赖表或视图的视图和过程,以及视图或过程所依赖的表...
MS-SQL Server
34,592
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章