判断数据中对象是否存在

                                        (理论)

【sys.databases】
它是SQL Server中的一个视图,它的位置参看图中所示。MicrosoftSQL Server实例中每个数据库都对应其中的一行。具体该视图中每个字段的含义,参看MSDN:https://msdn.microsoft.com/zh-cn/library/ms178534.aspx

【sysobjects】
它也是SQL Server中的一个视图,它的位置在每个用户创建的库里面的系统视图中,如下图所示。这个视图中每个字段的含义请参考MSDN:https://msdn.microsoft.com/zh-cn/library/ms177596.aspx。它主要存储当前数据库的对象,如约束、默认值、日志、规则、存储过程等。

                                        (经验)

下面介绍几个常用的判断数据库中是否存在某个对象的SQL语句。
1、数据库
    if exists (select * from sys.databases where name = ’数据库名’)  
2、数据表
    if exists (select * from sysobjects where id = object_id(N’[表名]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)  
3、存储过程
    if exists (select * from sysobjects where id = object_id(N’[存储过程名]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)  
4、视图
    IF EXISTS (SELECT * FROM sys.views WHERE object_id = ’[dbo].[视图名]’
5、函数
     if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[函数名]’) and xtype in (N’FN’, N’IF’, N’TF’))    


评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值