开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 4818|回复: 3

SQL常用的判断xx是否存在

[复制链接]

0

精华

121

贡献

24

赞扬

帖子
112
软币
2078
在线时间
132 小时
注册时间
2013-6-8
发表于 2013-6-17 13:53:07 | 显示全部楼层 |阅读模式

/*判断数据库是否存在*/
IF EXISTS ( SELECT 1FROM sys.databases WHERE name = '数据库名' )
DROP DATABASE [数据库名]

/*判断表是否存在*/
IF EXISTS ( SELECT 1FROM sysobjects WHERE id = OBJECT_ID(N'[表名]') AND OBJECTPROPERTY(id,N'IsUserTable') = 1 )
DROP TABLE [表名]

/*判断存储过程是否存在*/
IF EXISTS ( SELECT 1FROM        sysobjects WHERE id =OBJECT_ID(N'[存储过程名]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1 )
DROP PROCEDURE[存储过程名]

/*判断临时表是否存在*/
IFOBJECT_ID('tempdb..#临时表名') IS NOT NULL DROP TABLE #临时表名


/*判断视图是否存在*/
IF EXISTS (SELECT 1FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = N'视图名称')
DROP VIEW [视图名称]

/*判断函数是否存在*/   
IF EXISTS ( SELECT 1FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[函数名]') AND xtype IN ( N'FN',N'IF', N'TF' ) )
DROP FUNCTION[dbo].[函数名]

/*判断列是否存在*/   
IF EXISTS ( SELECT 1FROM        syscolumns WHERE id =OBJECT_ID('表名') AND name = '列名' )
ALTER TABLE 表名 DROPCOLUMN 列名

/*判断列是否自增列*/   
IFCOLUMNPROPERTY(OBJECT_ID('表名'), '列名', 'IsIdentity') = 1
PRINT'自增列'  
ELSE
PRINT'不是自增列'

/*判断表中是否存在索引*/   
IF EXISTS ( SELECT 1FROM sysindexes WHERE id = OBJECT_ID('表名') AND name = '索引名' )
PRINT'存在'   
ELSE
PRINT'不存在'

/*判断设备是否存在*/
IFOBJECT_ID ( '设备名称', 'P' ) IS NOT NULL DROP PROCEDURE NQAutoBack;

/*判断约束是否存在*/
IF EXISTS (SELECT 1 FROMINFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE CONSTRAINT_NAME = '约束名')

/*判断登录名是否存在*/
IF NOT EXISTS(select1 from master.dbo.syslogins WHERE name = 'sss')

评分

参与人数 1贡献 +2 收起 理由
羽叶 + 2 感谢分享

查看全部评分

回复

使用道具 举报

0

精华

121

贡献

108

赞扬

帖子
82
软币
3677
在线时间
274 小时
注册时间
2013-6-8
发表于 2013-6-18 10:06:29 | 显示全部楼层
收藏了,很需要这样的东西。
回复

使用道具 举报

0

精华

60

贡献

53

赞扬

帖子
73
软币
1545
在线时间
62 小时
注册时间
2013-6-8
发表于 2013-6-18 13:07:12 | 显示全部楼层
嗯,主要要记住几个系统表和系统存储过程
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-22 21:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表