SQL Server判断数据库、表、存储过程、函数是否存在

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

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

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

--4.判断函数是否存在
IF OBJECT_ID(N'函数名') IS NOT NULL
    DROP FUNCTION dnt_split

---5.判断数据库是否开启了全文搜索
SELECT DATABASEPROPERTY('数据库名', 'isfulltextenabled')

--6.判断全文目录是否存在
SELECT *
FROM   sysfulltextcatalogs
WHERE  NAME = '全文目录名称'

--7.判断要创建临时表是否存在
IF OBJECT_ID('临时表') IS NOT NULL
BEGIN
    PRINT '存在'
END
ELSE
BEGIN
    PRINT '不存在'
END

-- 8.判断要创建的视图名是否存在
IF EXISTS (
       SELECT *
       FROM   dbo.sysobjects
       WHERE  id = OBJECT_ID(N'[dbo].[视图名]')
              AND OBJECTPROPERTY(id, N'IsView') = 1
   )
    DROP VIEW [dbo].[视图名]
 --9.判断table1中是否存在name字段      
IF EXISTS(
       SELECT *
       FROM   syscolumns
       WHERE  id = OBJECT_ID('table1')
              AND NAME = 'name'
   )
BEGIN
    SELECT *
    FROM   table1;
END     
 
--10.判断table1中是否存在name字段且删除字段   
IF EXISTS(
       SELECT *
       FROM   syscolumns
       WHERE  id = OBJECT_ID('table1')
              AND NAME = 'name'
   )
BEGIN
    SELECT *
    FROM   table1; 
    ALTER TABLE table1 DROP COLUMN NAME
END  
 
 

目录
相关文章
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1428 152
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1040 156
|
人工智能 运维 关系型数据库
|
SQL 数据库 数据安全/隐私保护
数据库数据恢复——sql server数据库被加密的数据恢复案例
SQL server数据库数据故障: SQL server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密,文件名字被篡改。
|
8月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
716 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
8月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
9月前
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
417 5
|
10月前
|
SQL 存储 数据库
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
1431 0
|
10月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
763 0
|
存储 SQL 数据库连接
C#程序调用Sql Server存储过程异常处理:调用存储过程后不返回、不抛异常的解决方案
本文分析了C#程序操作Sql Server数据库时偶发的不返回、不抛异常问题,并提出了解决思路。首先解析了一个执行存储过程的函数`ExecuteProcedure`,其功能是调用存储过程并返回影响行数。针对代码执行被阻塞但无异常的情况,文章总结了可能原因,如死锁、无限循环或网络问题等。随后提供了多种解决方案:1) 增加日志定位问题;2) 使用异步操作提升响应性;3) 设置超时机制避免阻塞;4) 利用线程池分离主线程;5) 通过信号量同步线程;6) 监控数据库连接状态确保可用性。这些方法可有效应对数据库操作中的潜在问题,保障程序稳定性。
863 11