您的位置:首页 > 数据库

判断SQL数据库中函数、存储过程等是否存在的方法

2012-08-01 08:26 447 查看
介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函数及数据库能够有所帮助。
库是否存在

if exists(select * from master..sysdatabases where name=N'库名')

print 'exists'

else

print 'not exists'

---------------

-- 判断要创建的表名是否存在

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

-- 删除表

drop table [dbo].[表名]

GO

---------------

--判断要创建临时表是否存在

If Object_Id('Tempdb.dbo.#Test') Is Not Null

Begin

print '存在'

End

Else

Begin

print '不存在'

End

---------------

-- 判断要创建的存储过程名是否存在
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[存储过程名]')
and OBJECTPROPERTY(id, N'IsProcedure') = 1)

-- 删除存储过程

drop procedure [dbo].[存储过程名]

GO
       sql2008中:
        IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[存储过程名]') AND type in (N'P', N'PC'))

DROP PROCEDURE [dbo].[存储过程名]

GO
       ---------------

-- 判断要创建的视图名是否存在

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[视图名]') and OBJECTPROPERTY(id, N'IsView') = 1)

-- 删除视图

drop view [dbo].[视图名]

GO

---------------

-- 判断要创建的函数名是否存在

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[函数名]') and xtype in (N'FN', N'IF', N'TF'))

-- 删除函数

drop function [dbo].[函数名]

GO

if col_length('表名', '列名') is null

print '不存在'

select 1 from sysobjects where id in (select id from syscolumns where name='列名') and name='表名'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息