<p>EXISTS 的一个通常用法是在运行CREATE语句之前检验表是否存在。有时可能希望删除一个已存在的表,如果表已经存在的话,可能使用ALTER语句或者其他语句修改已存在的表。一种最常用的使用方法如下所示:</p>
IF EXISTS (SELECT * FROM sys.objects WHERE OBJECT_NAME(object_id) = 'foo' AND SCHEMA_NAME(schema_id) = 'dbo' AND OBJECTPROPERTY(object_id, 'IsUserTable') = 1) BEGIN DROP TABLE dbo.foo PRINT 'Table foo has been dropped'; END GO CREATE TABLE dbo.foo ( Column1 int IDENTITY(1, 1) NOT NULL, Column2 varchar(50) NULL );
创建数据库的小脚本一例:
USE master; GOIF NOT Exists (SELECT 'True' FROM sys.databases WHERE name = 'AdventureWorksCreate') BEGIN CREATE DATABASE AdventureWorksCreate; END ELSE BEGIN PRINT 'Database already exists. Skipping CREATE DATABASE Statement'; END GO