好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Sql中判断"库、表、列,视图,存储过程"是否存在

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中判断"库、表、列,视图,存储过程"是否存在的详细内容...

  阅读:34次