我看到有些表的相关性中有很多视图或者是存储过程。是怎么附加的?

yundou 2003-08-20 06:02:17
我看到有些表的相关性中有很多视图或者是存储过程。是怎么附加的?
...全文
110 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
THE_ROCK 2003-08-20
  • 打赏
  • 举报
回复
这样会影响这张表的使用吗?进而会影响数据库的使用吗?这是最重要的!
pengdali 2003-08-20
  • 打赏
  • 举报
回复
你就和
create table aa..
create view as select * from aa ....
drop table aa
create table aa...
sp_depends aa

一样,它丢失了相关性。
THE_ROCK 2003-08-20
  • 打赏
  • 举报
回复
从一个数据库导到另外一个数据库!但是两个数据库都是一样的,只是名字不同而已!因为有个库中的那张表被破坏了,所以想导过去!用的是DTS!
pengdali 2003-08-20
  • 打赏
  • 举报
回复
你怎么导的?
yundou 2003-08-20
  • 打赏
  • 举报
回复
因为在原数据库中可以看到这是相关性,后来把这张表导出去了,然后就看不到相关性了,目标数据库和原数据库一样,都是一个数据库程序生成的!
yundou 2003-08-20
  • 打赏
  • 举报
回复
我主要是想知道如果这张表显示不出相关性,是不是代表就有问题,而影响使用!
hjb111 2003-08-20
  • 打赏
  • 举报
回复
sp_depends 只是显示相关性的信息:
也可用:
select * from sysdepends

可是并不知如附加了呀?
z5wjz 2003-08-20
  • 打赏
  • 举报
回复
假设有表:
CREATE TABLE [tt] (
[OrderID] [int] NOT NULL ,
[ProductID] [int] NOT NULL ,
[UnitPrice] [money] NOT NULL ,
[Quantity] [smallint] NOT NULL ,
[Discount] [real] NOT NULL ,
CONSTRAINT [PK_tt] PRIMARY KEY CLUSTERED
(
[OrderID],
[ProductID]
) ON [PRIMARY]
) ON [PRIMARY]
GO

有视图:

CREATE VIEW dbo.VIEW1
AS
SELECT OrderID, UnitPrice, ProductID, Quantity
FROM dbo.tt

则执行:sp_depends tt
显示:

在当前数据库中,下列对象引用了指定的对象:
name type
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------
dbo.VIEW1 view



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'

gzllh 2003-08-20
  • 打赏
  • 举报
回复
在表所在的数据库的视图(views)中增加新的视图,比如增加了一个视图是从A表及B表中取相关数据,则在A表和B表的相关性中会看到该视图。
存储过程类似,只不过是在所属数据库的存储过程(Stored Procedures)中增加而已。

27,579

社区成员

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

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