SQL Serverは、オブジェクトが存在するかどうかを判断します(整理中...)
2249 ワード
1データベースが存在するかどうかを判断する
2テーブルが存在するか否かを判断する
3ストレージ・プロシージャが存在するかどうかを判断する
4テンポラリ・テーブルが存在するか否かを判断する
5ビューが存在するかどうかを判断する
6関数が存在するか否かを判断する
7ユーザが作成したオブジェクト情報の取得
8列が存在するか否かを判断する
9列が自増列であるか否かを判断する
10テーブルにインデックスがあるかどうかを判断する
11データベース内のオブジェクトの表示
if exists (select * from sys.databases where name = ' ')
drop database [ ]
2テーブルが存在するか否かを判断する
if exists (select * from sysobjects where id = object_id(N'[ ]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [ ]
3ストレージ・プロシージャが存在するかどうかを判断する
if exists (select * from sysobjects where id = object_id(N'[ ]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [ ]
4テンポラリ・テーブルが存在するか否かを判断する
if object_id('tempdb..# ') is not null
drop table #
5ビューが存在するかどうかを判断する
--SQL Server 2000
IF EXISTS (SELECT * FROM sysviews WHERE object_id = '[dbo].[ ]'
--SQL Server 2005
IF EXISTS (SELECT * FROM sys.views WHERE object_id = '[dbo].[ ]'
6関数が存在するか否かを判断する
--
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ ]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[ ]
7ユーザが作成したオブジェクト情報の取得
SELECT [name],[id],crdate FROM sysobjects where xtype='U'
/*
xtype ,
C = CHECK
D = DEFAULT
F = FOREIGN KEY
L =
FN =
IF =
P =
PK = PRIMARY KEY ( K)
RF =
S =
TF =
TR =
U =
UQ = UNIQUE ( K)
V =
X =
*/
8列が存在するか否かを判断する
if exists(select * from syscolumns where id=object_id(' ') and name=' ')
alter table drop column
9列が自増列であるか否かを判断する
if columnproperty(object_id('table'),'col','IsIdentity')=1
print ' '
else
print ' '
SELECT * FROM sys.columns WHERE object_id=OBJECT_ID(' ')
AND is_identity=1
10テーブルにインデックスがあるかどうかを判断する
if exists(select * from sysindexes where id=object_id(' ') and name=' ')
print ' '
else
print '
11データベース内のオブジェクトの表示
SELECT * FROM sys.sysobjects WHERE name=' '