怎样附加相关性?

yundou 2003-08-20 06:01:33
我看到有些表的相关性中有很多视图或者是存储过程。是怎么附加的?
...全文
31 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yundou 2003-08-20
  • 打赏
  • 举报
回复
因为在原数据库中可以看到这是相关性,后来把这张表导出去了,然后就看不到相关性了,目标数据库和原数据库一样,都是一个数据库程序生成的!
pengdali 2003-08-20
  • 打赏
  • 举报
回复
create procedure sp_depends --- 1996/08/09 16:51
@objname nvarchar(776) /* the object we want to check */
as

declare @objid int /* the id of the object we want */
declare @found_some bit /* flag for dependencies found */
declare @dbname sysname

/*
** Make sure the @objname is local to the current database.
*/

select @dbname = parsename(@objname,3)

if @dbname is not null and @dbname <> db_name()
begin
raiserror(15250,-1,-1)
return (1)
end

/*
** See if @objname exists.
*/
select @objid = object_id(@objname)
if @objid is null
begin
select @dbname = db_name()
raiserror(15009,-1,-1,@objname,@dbname)
return (1)
end

/*
** Initialize @found_some to indicate that we haven't seen any dependencies.
*/
select @found_some = 0

set nocount on

/*
** Print out the particulars about the local dependencies.
*/
if exists (select *
from sysdepends
where id = @objid)
begin
raiserror(15459,-1,-1)
select 'name' = (s6.name+ '.' + o1.name),
type = substring(v2.name, 5, 16),
updated = substring(u4.name, 1, 7),
selected = substring(w5.name, 1, 8),
'column' = col_name(d3.depid, d3.depnumber)
from sysobjects o1
,master.dbo.spt_values v2
,sysdepends d3
,master.dbo.spt_values u4
,master.dbo.spt_values w5 --11667
,sysusers s6
where o1.id = d3.depid
and o1.xtype = substring(v2.name,1,2) collate database_default and v2.type = 'O9T'
and u4.type = 'B' and u4.number = d3.resultobj
and w5.type = 'B' and w5.number = d3.readobj|d3.selall
and d3.id = @objid
and o1.uid = s6.uid
and deptype < 2

select @found_some = 1
end

/*
** Now check for things that depend on the object.
*/
if exists (select *
from sysdepends
where depid = @objid)
begin
raiserror(15460,-1,-1)
select distinct 'name' = (s.name + '.' + o.name),
type = substring(v.name, 5, 16)
from sysobjects o, master.dbo.spt_values v, sysdepends d,
sysusers s
where o.id = d.id
and o.xtype = substring(v.name,1,2) collate database_default and v.type = 'O9T'
and d.depid = @objid
and o.uid = s.uid
and deptype < 2

select @found_some = 1
end

/*
** Did we find anything in sysdepends?
*/
if @found_some = 0
raiserror(15461,-1,-1)

set nocount off

return (0) -- sp_depends
pengdali 2003-08-20
  • 打赏
  • 举报
回复
sp_depends
显示有关数据库对象相关性的信息(例如,依赖表或视图的视图和过程,以及视图或过程所依赖的表和视图)。不报告对当前数据库以外对象的引用。

语法
sp_depends [ @objname = ] 'object'

参数
[@objname =] 'object'

被检查相关性的数据库对象。对象可以是表、视图、存储过程或触发器。Object 的数据类型为 varchar(776),没有默认值。

返回代码值
0(成功)或 1(失败)

结果集
sp_depends 显示两个结果集。

下面的结果集显示 object 所依赖的对象。

列名 数据类型 描述
name nvarchar(40) 存在相关性的项目名称。
type nvarchar(16) 项目类型。
updated nvarchar(7) 是否更新项目。
selected nvarchar(8) 项目是否用于 SELECT 语句。
column sysname 存在相关性的列或参数。


下面的结果集显示依赖 object 的对象。

列名 数据类型 描述
name nvarchar(40) 存在相关性的项目名称。
type nvarchar(16) 项目类型。


注释
若一个对象引用另一个对象,则认为前者依赖后者。sp_depends 通过查看 sysdepends 表确定相关性。

权限
执行权限默认授予 public 角色。

示例
下面的示例列出依赖 Customers 表的数据库对象。

USE Northwind
EXEC sp_depends 'Customers'

z5wjz 2003-08-20
  • 打赏
  • 举报
回复
你只要在视图或存储过程中引用了这张表,就会产生附加性,使用sp_depends就可以看到了.

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧