Transact-SQL Exists Sentences --判断数据库是否存在 IF EXISTS(SELECT * FROM master.sysdatabases WHERE name=N'库名') print 'exists' ELSE print 'not exists'
--判断要创建的表名是否存在 IF ESISTS(SELECT * FROM dbo.sysobjects WHERE id=object_id(N'[dbo].[表名]') AND OBJECTPROPERTY(id, N'IsUserTable')=1) --删除表 DROP TABLE [dbo].[表名] GO
--判断要创建临时表是否存在 IF object_id('Tempdb.dbo.#Test') IS NOT Null BEGIN print '存在' END ELSE BEGIN print '不存在' END
--判断要创建的存储过程名是否存在 IF EXISTS(SELECT * FROM dbo.sysobjects WHERE id=object_id(N'[dbo].[存储过程名]') AND OBJECTPROPERTY(id, N'IsProcedure')=1) --删除存储过程 DROP PROCEDURE [dbo].[存储过程名] GO
--判断要创建的视图名是否存在 IF EXISTS(SELECT * FROM dbo.sysobjects WHERE id=object_id(N'[dbo].[视图名]') AND OBJECTPROPERTY(id, N'IsView')=1) --删除视图 DROP VIEW [dbo].[视图名] GO
--判断要创建的函数名是否存在 IF EXISTS(SELECT * FROM dbo.sysobjects WHERE id=object_id(N'[dbo].[函数名]') AND OBJECTPROPERTY(id, N'FN', N'IF', N'TF')) --删除函数 DROP FUNCTION [dbo].[函数名] GO
--判断要创建的列名是否存在 if col_length('表名', '列名') is null print '不存在' 或 select 1 from sysobjects where id in (select id from syscolumns where name='列名') and name='表名'
SQL Server 2005 系统表简介 sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库字符集与排序顺序 sysconfigures 主数据库 配置选项 syscurconfigs 主数据库当前配置选项 sysdatabases 主数据库服务器中的数据库 syslanguages 主数据库语言 syslogins 主数据库 登陆帐号信息 sysoledbusers 主数据库 链接服务器登陆信息 sysprocesses 主数据库进程 sysremotelogins主数据库 远程登录帐号 syscolumns 每个数据库 列 sysconstrains 每个数据库 限制 sysfilegroups 每个数据库 文件组 sysfiles 每个数据库 文件 sysforeignkeys 每个数据库 外部关键字 sysindexs 每个数据库 索引 sysmenbers 每个数据库角色成员 sysobjects 每个数据库所有数据库对象 syspermissions 每个数据库 权限 systypes 每个数据库 用户定义数据类型 sysusers 每个数据库 用户