发布网友 发布时间:2022-04-29 18:03
共5个回答
懂视网 时间:2022-04-29 22:25
IF EXISTS (SELECT * FROM MASTER.sys.sysdatabases WHERE NAME = ‘库名‘)
PRINT ‘exists ‘
else
PRINT ‘not exists‘
-- 判断要创建的表名是否存在
IF EXISTS (Select * From sysObjects Where Name =‘表名‘ And Type In (‘S‘,‘U‘))
PRINT ‘exists‘
ELSE
PRINT ‘not exists‘
GO
--判断要创建临时表是否存在
If Object_Id( ‘Tempdb.dbo.#Test‘) Is Not NULL--#Test 为临时表名
Begin
print ‘存在 ‘
End
Else
Begin
print ‘不存在 ‘
End
-- 判断要创建的存储过程名是否存在
IF EXISTS (Select * From sysObjects Where Name =‘存储过程名‘ And Type In (‘S‘,‘P‘))
PRINT ‘exists‘
ELSE
PRINT ‘not exists‘
GO
--判断列名是否存在
IF EXISTS (SELECT O.NAME AS 表名,C.NAME AS 列名 FROM SYSOBJECTS O INNER JOIN SYSCOLUMNS C ON O.ID=C.ID WHERE O.NAME= ‘表名‘ AND C.NAME = ‘列名‘)
SELECT ‘EXISTS‘
ELSE
SELECT ‘NOT EXISTS‘
--判斷 表A 列C 是否存在
IF NOT EXISTS (SELECT 1 FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME=‘A‘ AND T2.NAME=‘C‘)
--判断表名存在的一个函数
IF COL_LENGTH( ‘表名‘,‘列名‘) IS NULL
PRINT ‘not exists‘
ELSE
PRINT ‘exists‘
--新增修改视图SP使用先DROP, 后CREATE的方式. 如果带*的视图使用sp_refreshview刷新. 前面要加 exec
if exists (select * from dbo.sysobjects where id = object_id(N‘[dbo].[rpt_2033300001_v]‘) and OBJECTPROPERTY(id, N‘IsView‘) = 1)
drop view [dbo].[rpt_2033300001_v]
GO
CREATE VIEW dbo.rpt_2033300001_v
AS
*********
if exists (select * from dbo.sysobjects where id = object_id(N‘[dbo].[存储过程名]‘) and OBJECTPROPERTY(id, N‘IsProcedure‘) = 1)
-- 删除存储过程
drop procedure [dbo].[存储过程名]
GO
Sql中判断"库、表、列,视图,存储过程"是否存在
标签:
热心网友 时间:2022-04-29 19:33
1、首先我们打开SQL Server Management Studio管理工具,点击【新建查询】,新增一个书写sql语句的窗口。
2、在上一步打开的sql语句输入窗口,定义一个整数类型的变量,设置初始值等于10。
3、使用if条件语句,判断上面的临时变量是否等于10,如果等于就输出一行文字。
4、当上面的sql语句写完之后,点击顶部菜单的【执行】,就能运行当前窗口的sql语句了,此时可以看到下方输出了一行文字,刚好与if条件语句内部的内容一致,说明这个if条件判断成立。
5、这个时候就可以使用else语句。例如,判断变量是否等于5,不管是否等于都输出一句话。从运行结果可以看出,最终输出的是else下面的内容。
6、上面的sql语句,内容判断其实很简单,但是,语句看起来有点繁琐。那么,当if、else判断成立后,各自只有一条sql语句执行的时候,就可以省略begin-end。
7、如果条件判断不止两个结果,比如有三个结果,就可以使用[if]-[else if]-[else]的结构,假设还有4个结果,就在中间继续添加else if即可。
热心网友 时间:2022-04-29 20:51
if exists(select 0 from table_2)使用Exists判断是否有数据速度最快,效率最高,其他的使用Count()方式,都要遍历table_2表,而Exists判断方式只要扫描到一行即会认为表达式为真
热心网友 时间:2022-04-29 22:25
给出两种方式供参考
M1:
热心网友 时间:2022-04-30 00:17
declare @no int