检查sql对象是否存在

SQL Server判断对象是否存在   
1 判断数据库是否存在 Sql代码  
if exists (select * from sys.databases where name = ‘数据库名‘)     drop database [数据库名]   
2 判断表是否存在 Sql代码  
if exists (select * from sysobjects where id = object_id(‘表名‘) and objectproperty(id,‘IsUserTable‘) = 1) drop table [表名]  
if exists (select * from sysobjects where name = ‘表名‘ and xtype = ‘U‘) drop table [表名]   
3 判断存储过程是否存在 Sql代码  
if exists (select * from sysobjects where id = object_id(‘[存储过程名]‘) and objectproperty(id, ‘IsProcedure‘) = 1) drop procedure [存储过程名]   
if exists (select 1 from sysobjects where name = ‘存储过程名‘ and xtype = ‘P‘)  drop procedure [存储过程名]  
4 判断临时表是否存在 Sql代码  
if object_id(‘tempdb..#临时表名‘) is not null       drop table #临时表名   
5 判断视图是否存在 Sql代码  
--SQL Server 2000    
IF EXISTS (SELECT * FROM sysviews WHERE object_id = ‘[dbo].[视图名]‘)    
--SQL Server 2005    
IF EXISTS (SELECT * FROM sys.views WHERE object_id = ‘[dbo].[视图名]‘)   
6 判断函数是否存在 Sql代码  
--  判断要创建的函数名是否存在   
  if exists (select * from dbo.sysobjects where id = object_id(‘[dbo].[函数名]‘) and xtype in (‘FN‘, ‘IF‘, ‘TF‘))

wk_ad_begin({pid : 21});wk_ad_after(21, function(){$(‘.ad-hidden‘).hide();}, function(){$(‘.ad-hidden‘).show();});

drop function [dbo].[函数名]  
  if exists (select 1 from sysobjects where name = ‘函数名‘ and xtype in(‘FN‘,‘IF‘,‘TF‘))   drop function [函数名]    
7 获取用户创建的对象信息  Sql代码  
SELECT 1 FROM sysobjects where name = [对象名] and xtype=‘‘   /*   
xtype 的表示参数类型,通常包括如下这些   C = CHECK 约束   
D = 默认值或 DEFAULT 约束   F = FOREIGN KEY 约束   L = 日志   
FN = 标量函数   IF = 内嵌表函数   P = 存储过程   
PK = PRIMARY KEY 约束(类型是 K)   RF = 复制筛选存储过程   S = 系统表   TF = 表函数   TR = 触发器   U = 用户表   
UQ = UNIQUE 约束(类型是 K)   V = 视图   
X = 扩展存储过程   */   
8 判断列是否存在 Sql代码  
if exists(select * from syscolumns where id=object_id(‘表名‘) and name=‘列名‘)     alter table 表名 drop column 列名     
9 判断列是否自增列 Sql代码  
if columnproperty(object_id(‘table‘),‘col‘,‘IsIdentity‘)=1     print ‘自增列‘   else   
  print ‘不是自增列‘    
SELECT * FROM syscolumns WHERE object_id=OBJECT_ID(‘表名‘)   AND is_identity=1

10 判断表中是否存在索引 Sql代码  
if exists(select * from sysindexes where id=object_id(‘表名‘) and name=‘索引名‘)       print  ‘存在‘     else     
  print  ‘不存在‘    
11 查看数据库中对象 Sql代码  
SELECT * FROM sys.sysobjects WHERE name=‘对象名‘  
12 查看表中主键是否存在,如存在则将其drop掉 declare @pk varchar(100) 
select @pk=name from sysobjects where parent_obj=object_id(‘表名‘) and xtype=‘PK‘ if @pk is not null 
exec(‘alter table 表名 drop ‘+ @pk)

时间: 2024-07-29 21:53:28

检查sql对象是否存在的相关文章

Delphi下检查SQL Server服务器当前运行状态!

Delphi下检查SQL Server服务器当前运行状态!要求:Delphi下随时监控SQL Server状态.1.命令提示符下可用:TELNET <SQL Server IP> 1433 检查.2.Delphi下如何模拟实现上述功能.----------原来做过:function GetSqlServerStatus(lpszComputerName: LPCTSTR): Integer;var  ssStatus: SERVICE_STATUS;  dwOldCheckPoint: DWO

[DX11调试]检查D3D对象是否释放:ReportLiveObjects()的用法

参考文章<DirectX Leak Debugging>:http://masterkenth.com/blog/2014/03/07/directx-leak-debugging/ DX11在debug方面有许多改进,其中之一就是能输出未释放的d3d对象,但默认情况下,是输出这个样子: D3D11 WARNING: Process is terminating. Using simple reporting. Please call ReportLiveObjects() at runtim

通过端口 8080 连接到主机 localhost 的 TCP/IP 连接失败。错误:“驱动程序收到意外的登录前响应。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受

1. 点击 开始 --> 所有程序 --> Microsoft SQL Server2005 --> 配置工具-->SQL Server configuration Manager- 选择左边 SQL Server 2005 网络配置 -->双击 MSSQLSERVER 协议--> 选中 TCP/IP 右键 点击启用:2. 选择左边 SQLServer 2005 服务 --> 选择右边SQL Server(MSSQLSERVER) --> 右击选择重新启动

SQL对象名无效的解决

SQL对象名无效的解决方法 产生SQL对象名无效的问题大多原因是由于数据迁移导致的,下面我们给出解决方法. 在使用数据库的过程中,经常会遇到数据库迁移或者数据迁移的问题,或者有突然的数据库损坏,这时需要从数据库的备份中直接恢复.但是,此时会出现问题,这里说明几种常见问题的解决方法. 一.孤立用户的问题 比如,以前的数据库的很多表是用户test建立的,但是当我们恢复数据库后,test用户此时就成了孤立用户,没有与之对应的登陆用户名,哪怕你建立了一个test登录用户名,而且是以前的用户密码,用该用户

NHibernate could not get or update next value[SQL: ] 对象名 &#39;hibernate_unique_key&#39; 无效。

错误信息: --------------------------- --------------------------- NHibernate.Exceptions.GenericADOException: could not get or update next value[SQL: ] ---> System.Data.SqlClient.SqlException: 对象名 'hibernate_unique_key' 无效. 在 System.Data.SqlClient.SqlConn

解决登录PL/SQL 对象窗口查看Tables没有表的问题.

有时候PL/SQL登陆上在左侧对象窗口查看表的时候,没有显示,注意现在系统显示的用户: 可以先查看一下当前用户有没有创建表, select count(*) from user_tables; 一般选择为,当前用户就可以显示出来TABLES了!

Powershell检查AD对象是否存在

在Powershell(PS)脚本或.Net活动目录编程时经常需要检查一个AD对象是否存在,但无论是PS的AD模块还是到目前的版本的Framework尚未提供一个直接的方法.本文根据近几年写AD脚本的经验,总结如下: 第一种方法是用调用ADSI静态方法Exists(),其使用的查询可以是上个世纪的WinNT provider也可以是LDAP,使用语法如下:[ADSI]::Exists("WinNT://DomainName/SamAccountName");[ADSI]::Exists

检查SQL语句是否合法

昨天又有一个新的需求:验证文本框输入的SQL语法是否正确. 于是就开始百度,其实也挺简单的. 首先需要知道"SET PARSEONLY { ON | OFF }". 当 SET PARSEONLY 为 ON 时,SQL Server 只分析语句. 当 SET PARSEONLY 为 OFF 时,SQL Server 编译并执行语句. 和 SET PARSEONLY 相关的还有SET NOEXEC ON, 当 SET NOEXEC 为 ON 时,SQL Server 将编译每一条Tran

inspect模块---检查活动对象

inspect模块提供了一些有用的函数来帮助获取有关活动对象(如模块,类,方法,函数,跟踪,框架对象和代码对象)的信息.例如,它可以帮助您检查类的内容,检索方法的源代码,提取和格式化函数的参数列表,或获取显示详细追溯所需的所有信息. 这个模块提供了四种主要的服务: 类型检查, 获取源代码, 检查类和函数, 以及检查解释器堆栈 一.type and members 1. inspect.getmembers(object[, predicate]) 第二个参数通常可以根据需要调用如下16个方法: