sqlserver 各种判断是否存在(表名、函数、存储过程.......)

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:
 
库是否存在
if exists( select  * from  master..sysdatabases where  name =N '库名' )
print 'exists'
else
print 'not exists'
---------------
-- 判断要创建的表名是否存在
if exists ( select  * from  dbo.sysobjects where  id = object_id(N '[dbo].[表名]' ) and  OBJECTPROPERTY(id, N 'IsUserTable' ) = 1)
-- 删除表
drop  table  [dbo].[表名]
GO
---------------
-----列是否存在
  IF COL_LENGTH( '表名' , '列名' ) IS  NULL
     PRINT 'not exists'
ELSE
  PRINT 'exists'
alter  table  表名 drop  constraint  默认值名称
go
alter  table  表名 drop  column  列名
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  sysobjects where  xtype= 'fn'  and  name = '函数名' )
if exists ( select  * from  dbo.sysobjects where  id = object_id(N '[dbo].[函数名]' ) and  xtype in  (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 = '表名'

  本文转自lpxxn博客园博客,原文链接:http://www.cnblogs.com/li-peng/archive/2013/01/24/2874517.html,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
6月前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第18天】SQL Server 存储过程具有提高性能、增强安全性、代码复用和易于维护等优点。它可以减少编译时间和网络传输开销,通过权限控制和参数验证提升安全性,支持代码共享和复用,并且便于维护和版本管理。然而,存储过程也存在可移植性差、开发和调试复杂、版本管理问题、性能调优困难和依赖数据库服务器等缺点。使用时需根据具体需求权衡利弊。
147 1
|
6月前
|
存储 SQL 缓存
SQL Server存储过程的优缺点
【10月更文挑战第22天】存储过程具有代码复用性高、性能优化、增强数据安全性、提高可维护性和减少网络流量等优点,但也存在调试困难、移植性差、增加数据库服务器负载和版本控制复杂等缺点。
304 1
|
6月前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第17天】SQL Server 存储过程是预编译的 SQL 语句集,存于数据库中,可重复调用。它能提高性能、增强安全性和可维护性,但也有可移植性差、开发调试复杂及可能影响数据库性能等缺点。使用时需权衡利弊。
126 3
|
6月前
|
存储 SQL 数据库
Sql Server 存储过程怎么找 存储过程内容
Sql Server 存储过程怎么找 存储过程内容
347 1
|
6月前
|
存储 SQL 数据库
SQL Server 临时存储过程及示例
SQL Server 临时存储过程及示例
97 3
|
2月前
|
存储 Java 关系型数据库
java调用mysql存储过程
在 Java 中调用 MySQL 存储过程主要借助 JDBC(Java Database Connectivity)。其核心原理是通过 JDBC 与 MySQL 建立连接,调用存储过程并处理结果。具体步骤包括:加载 JDBC 驱动、建立数据库连接、创建 CallableStatement 对象、设置存储过程参数并执行调用。此过程实现了 Java 程序与 MySQL 数据库的高效交互。
|
26天前
|
存储 关系型数据库 MySQL
【YashanDB知识库】MySQL返回结果集的存储过程的改写方法
本文介绍了将MySQL存储过程改写至YashanDB的解决方案。由于MySQL存储过程可直接返回结果集,而YashanDB需通过返回SYS_REF_CURSOR的函数实现类似功能,因此需要对代码进行转换。示例中展示了如何将MySQL存储过程`proc1`改写为YashanDB函数,并调整JDBC应用代码以适配REF_CURSOR输出参数,从而正确获取查询结果。此方法确保了跨数据库场景下的兼容性与功能性。
|
5月前
|
存储 SQL 关系型数据库
[MySQL]存储过程
本文介绍了存储过程的概念、优点和缺点,并通过具体示例详细讲解了存储过程的创建、使用和调用方法。此外,还介绍了游标的定义和使用,帮助读者更好地理解和应用存储过程。文章旨在为读者提供一个学习和使用存储过程的实用指南。
505 18
[MySQL]存储过程
|
5月前
|
存储 SQL NoSQL
|
6月前
|
存储 SQL 关系型数据库
MySql数据库---存储过程
MySql数据库---存储过程
86 5