Sql Server中判斷表或者資料庫是否存在

weixin_34402090發表於2010-03-21

SQL Server中判斷資料庫是否存在:
  法(一):

    select * From master.dbo.sysdatabases where name='資料庫名'

  法(二):
    if db_id('資料庫名') is not null

      drop database 。。。
      go

    create 。。。

 SQL Server中判斷表物件是否存在:
  select count(*) from sysobjects where id = object_id('資料庫名.Owner.表名')

  if exists 

      (select count(*) from sysobjects where id = object_id('資料庫名.Owner.表名'))
    print '存在'
  else
    print '不存在'

SQL Server中判斷表中欄位是否存在:
  if exists

      (select * from syscolumns where name='colname1' and id=object_id('資料庫名.Owner.表名'))
    print '存在'
  else
    print '不存在'
 (代表表tablename1中存在colname1欄位 )
例:
  select * from syscolumns where name='Test' and id=object_id('dbo.test')

 

SQL Server中判斷儲存過程或檢視是否存在:

   if object_id('檢視或儲存過程名')  is not null
     drop proc/view 。。。
   go

   create proc/view  。。。

 

  或

 

  if Exists(select * from sysobjects where name='檢視或儲存過程名'  AND  type  =  'P/V')
     drop proc/view  。。。
  go  

  create proc/view  。。。 

相關文章