sql server判断数据库、表、列、视图是否存在
1判断数据库是否存在
ifexists(select*fromsys.databaseswherename='数据库名')
dropdatabase[数据库名]
2判断表是否存在
ifexists(select*fromsysobjectswhereid=object_id(N'[表名]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[表名]
3判断存储过程是否存在
ifexists(select*fromsysobjectswhereid=object_id(N'[存储过程名]')andOBJECTPROPERTY(id,N'IsProcedure')=1)
dropprocedure[存储过程名]
4判断临时表是否存在
ifobject_id('tempdb..#临时表名')isnotnull
droptable#临时表名
5判断视图是否存在
--判断是否存在'MyView52'这个试图
IFEXISTS(SELECTTABLE_NAMEFROMINFORMATION_SCHEMA.VIEWSWHERETABLE_NAME=N'MyView52')
PRINT'存在'
else
PRINT'不存在'
6判断函数是否存在
--判断要创建的函数名是否存在
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[函数名]')andxtypein(N'FN',N'IF',N'TF'))
dropfunction[dbo].[函数名]
7获取用户创建的对象信息
SELECT[name],[id],crdateFROMsysobjectswherextype='U'
8判断列是否存在
ifexists(select*fromsyscolumnswhereid=object_id('表名')andname='列名')
altertable表名dropcolumn列名
9判断列是否自增列
ifcolumnproperty(object_id('table'),'col','IsIdentity')=1
print'自增列'
else
print'不是自增列'
SELECT*FROMsys.columnsWHEREobject_id=OBJECT_ID('表名')ANDis_identity=1
10判断表中是否存在索引
ifexists(select*fromsysindexeswhereid=object_id('表名')andname='索引名')
print'存在'
else
print'不存在'
删除索引dropindex表名.索引名
或:dropindex索引名on表名(貌似2000不行)
11查看数据库中对象
SELECT*FROMsys.sysobjectsWHEREname='对象名'SELECT*FROMsys.sysobjectsWHEREname='对象名'