SQL Server数据库存在判断语句及系统表简介 转

 

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 每个数据库 用户
原文地址:https://www.cnblogs.com/zhangzhifeng/p/3144031.html