IF EXISTS (SELECT * FROM MASTER.sys.sysdatabases WHERE NAME = ‘ 库名 ‘)
PRINT ‘exists ‘
else
PRINT ‘not exists‘
-- 判断要创建的表名是否存在
IF EXISTS (Select * From sysObjects Where Name =‘ 表名 ‘ And Type In (‘S‘,‘U‘))
PRINT ‘exists‘
ELSE
PRINT ‘not exists‘
GO
-- 判断要创建临时表是否存在
If Object_Id( ‘Tempdb.dbo.#Test‘) Is Not NULL--#Test 为临时表名
Begin
print ‘ 存在 ‘
End
Else
Begin
print ‘ 不存在 ‘
End
-- 判断要创建的存储过程名是否存在
IF EXISTS (Select * From sysObjects Where Name =‘ 存储过程名 ‘ And Type In (‘S‘,‘P‘))
PRINT ‘exists‘
ELSE
PRINT ‘not exists‘
GO
-- 判断列名是否存在
IF EXISTS (SELECT O.NAME AS 表名 ,C.NAME AS 列名 FROM SYSOBJECTS O INNER JOIN SYSCOLUMNS C ON O.ID=C.ID WHERE O.NAME= ‘ 表名 ‘ AND C.NAME = ‘ 列名 ‘)
SELECT ‘EXISTS‘
ELSE
SELECT ‘NOT EXISTS‘
-- 判斷 表 A 列 C 是否存在
IF NOT EXISTS (SELECT 1 FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME=‘A‘ AND T2.NAME=‘C‘)
-- 判断表名存在的一个函数
IF COL_LENGTH( ‘ 表名 ‘,‘ 列名 ‘) IS NULL
PRINT ‘not exists‘
ELSE
PRINT ‘exists‘
--新增修改视图 SP 使用先 DROP, 后 CREATE 的方式 . 如果带 * 的视图使用 sp_refreshview 刷新 . 前面要加 exec
if exists (select * from dbo.sysobjects where id = object_id(N‘[dbo].[rpt_2033300001_v]‘) and OBJECTPROPERTY(id, N‘IsView‘) = 1)
drop view [dbo].[rpt_2033300001_v]
GO
CREATE VIEW dbo.rpt_2033300001_v
AS
*********
if exists (select * from dbo.sysobjects where id = object_id(N‘[dbo].[ 存储过程名 ]‘) and OBJECTPROPERTY(id, N‘IsProcedure‘) = 1)
-- 删除存储过程
drop procedure [dbo].[ 存储过程名 ]
GO
Sql中判断"库、表、列,视图,存储过程"是否存在
标签:
查看更多关于Sql中判断"库、表、列,视图,存储过程"是否存在的详细内容...