查询某前缀的所有表;
select name from sysobjects where xtype='U' and name like 'RP_%';
一、判断库中是否存在某【表/约束条件】,如果不存在则【创建/约束】存在则不处理;
引用
在sqlserver(应该说在目前所有数据库产品)中创建一个资源如表,视图,存储过程中都要判断与创建的资源是否已经存在
在sqlserver中一般可通过查询sys.objects系统表来得知结果,不过可以有更方便的方法
如下:
if object_id('tb_table') is not null
print 'exist'
else
print'not exist'
如上,可用object_id()来快速达到相同的目的,tb_table就是我将要创建的资源的名称,所以要先判断当前数据库中不存在相同的资源
object_id()可接受两个参数,第一个如上所示,代表资源的名称,上面的就是表的名字,但往往我们要说明我们所要创建的是什么类型的资源,
这样sql可以明确地在一种类型的资源中查找是否有重复的名字,如下:
if object_id('tb_table','u') is not null
print 'exist'
else
print'not exist'
第二个参数 "u" 就表示tb_table是用户创建的表,即:USER_TABLE地首字母简写
查询sys.objects中可得到各种资源的类型名称(TYPE列),这里之举几个主要的例子
u ----------- 用户创建的表,区别于系统表(USER_TABLE)
s ----------- 系统表(SYSTEM_TABLE)
v ----------- 视图(VIEW)
p ----------- 存储过程(SQL_STORED_PROCEDURE)
可使用select distinct type ,type_desc from sys.objects 获得全部信息
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK__titleauth__au_id__0519C6AF]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[titleauthor] DROP CONSTRAINT FK__titleauth__au_id__0519C6AF
GO
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[authors]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
CREATE TABLE [dbo].[authors] (
[au_id] [int] NOT NULL ,
[au_lname] [varchar] (40) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[au_fname] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[phone] [char] (12) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[address] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[city] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[state] [char] (2) COLLATE Chinese_PRC_CI_AS NULL ,
[zip] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[contract] [bit] NOT NULL
) ON [PRIMARY]
--判断是否存在addOneArticle这个存储过程
if Exists(select name from sysobjects where NAME = 'addOneArticle' and type='P')
drop procedure addOneArticle
--判断是否存在countAr这个触发器
if exists(select * from dbo.sysobjects where id = object_id(N'[dbo].[countAr]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger countAr
--判断是否存在View_1这个视图
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = N'View_1')
DROP View View_1
--判断是否存在USER_Fun这个用户函数(注意此处的type 有两种,分别是'TF'-Table-valued Function 表值函数 或'FN'-Scalar-valued Function 标量值函数)
if exists(select * from dbo.sysobjects where id = object_id(N'[dbo].[USER_Fun]') and (type = 'FN' or type = 'TF'))
DROP FUNCTION USER_Fun
--判断表'Tb'是否存在
if (exists (SELECT * FROM dbo.sysobjects where id = object_id(N'Tb')and OBJECTPROPERTY(id, N'IsUserTable') = 1))
DROP TABLE Tb
--判断是否存在@jobname这个作业
if exists(select 1 from msdb..sysjobs where name=@jobname)
exec msdb..sp_delete_job@job_name = @jobname
分享到:
相关推荐
### SQL Server 基本语言知识点 #### 一、SQL Server 概述 SQL Server 是由微软开发并推出的一款关系型数据库管理系统。它提供了一系列工具和服务来存储、处理和管理数据,广泛应用于企业级应用程序中。SQL Server...
### SQL Server 常用的存储过程详解 在数据库管理与开发过程中,存储过程作为一种预编译的对象,能够显著提高数据库应用的性能,并且能够更好地实现业务逻辑的封装。SQL Server 提供了一系列丰富的内置存储过程以及...
SQL Server 2000是Microsoft公司提供的关系型数据库管理系统,SQL Server也是当今流行的数据库 数据库是表和数据库访问对象的集合...企业管理器是SQL Server 2000最常用的操作环境之一,能够执行对数据库的日常管理操作
在IT领域,数据管理和分析是至关重要的,而Excel和SQL Server是两个常用的数据处理工具。Excel以其直观易用的界面和强大的数据处理功能受到广大用户的喜爱,而SQL Server则作为一款企业级数据库管理系统,提供了高效...
- **OBJECT_ID()** 返回对象的ID,用于验证对象是否存在。 - **DATABASE()** 返回当前数据库的名称。 7. **其他特殊函数**: - **ISNULL()** 检查表达式是否为NULL,如果不是则返回表达式的值,如果是则返回第...
- Oracle使用PL/SQL,这是一种嵌入在SQL中的过程编程语言,常用工具包括sql*plus、isql*plus和pl/sql。 - SQL Server使用Transact-SQL,同样是一种SQL扩展,其主要查询工具是查询分析器。 6. **数据类型** - ...
在SQL Server中,掌握一些常用的关键字对于进行有效的数据库管理和操作至关重要。本文将根据提供的标题、描述、标签以及部分内容,详细解析与SQL Server相关的几个重要概念及其用法,包括`TRUNCATE TABLE`、`ALTER ...
在SQL Server中,管理和操作文件是数据库管理员日常工作中不可或缺的一部分。本篇文章将深入探讨如何在SQL Server中创建文件夹以及获取文件的相关信息,以便更好地管理数据库文件和其他数据相关的资源。 首先,我们...
因此,有了"Excel导入SQLserver源码_excel2sql.zip"这样的工具或代码,可以极大地提高工作效率。 这个压缩包文件"Excel导入SQLserver源码_excel2sql.zip"很可能包含了一个程序或脚本,用于自动化从Excel文件批量...
在ASP端,开发者会看到如何使用ASP的内置对象(如Response、Request、Session、Application)来处理HTTP请求,构建动态页面,以及如何使用Server对象的CreateObject方法实例化ADO对象来与数据库交互。此外,源码中...
- 检查分发路径下的文件夹(如`C:\Program Files\Microsoft SQL Server\MSSQL\REPLDATA\unc\XIAOWANGZI_database_database`),查看是否存在按时间命名的文件夹。 - 检查订阅服务器的指定订阅数据库,确认发布的表...
1. **数据库连接**: 在C#中,使用SqlConnection对象来建立和管理到SQL Server的连接。在`SqlServerHelp`类中,可能会有一个静态方法或属性用于创建和管理连接字符串,例如`GetConnectionString()`,该方法会从配置...
在深入探讨OLE对象在SQL Server中的开发及应用之前,先了解OLE(对象链接与嵌入)技术与数据库管理系统(尤其是SQL Server)之间的关联是非常重要的。OLE技术允许应用程序将文档、数据和其他对象嵌入或链接到其容器...
在SQL Server的JDBC驱动中,有几种不同的版本对应不同年份的SQL Server,例如,对于SQL Server 2000和SQL Server 2005,最常用的驱动是“Microsoft JDBC Driver”。这个驱动遵循JDBC API,提供了一系列的类和接口,...
《从零开始学SQL Server》是一本针对初学者精心编写的教程,旨在帮助那些对数据库管理系统毫无基础的读者快速入门并掌握SQL Server的核心概念和技术。SQL Server是Microsoft公司推出的一款强大的关系型数据库管理...
SQL Server的URL格式大致为`jdbc:sqlserver://servername:port;databaseName=dbname;`。 3. **获取Statement或PreparedStatement对象**:`Connection`对象提供了`createStatement()`或`prepareStatement()`方法,...
在SQL Server中,有时我们需要将一个数据库中的表结构和数据迁移到另一个数据库,或者备份部分数据以便于恢复或分析。在这种情况下,`SELECT INTO` 和 `INSERT INTO...SELECT` 语句是常用的工具,可以将数据从一个源...
"Java 调用 SQL Server 存储过程" Java 调用 SQL Server 存储过程是指在...Java 调用 SQL Server 存储过程是 Java 应用程序中的一种常用技术,可以提高数据库的安全性、简化数据库的维护、提高数据的 CONSISTENCY 等。
在 SQL Server 数据库管理系统中,存储过程是一种预编译的 SQL 代码集合,它可以被当作一个单独的对象来调用,从而提高应用程序的执行效率并简化复杂的业务逻辑处理。 **1. 创建存储过程** 示例代码: ```sql ...
SQL Server 数据库试题详解 在本文中,我们将对 SQL Server 数据库试题进行详细的解释和分析,涵盖关系数据模型、身份验证、安装注意事项、主键、表和索引创建、Transact-SQL 语句等方面的知识点。 关系数据模型 ...