SQL 各种判断是否存在


--数据库是否存在
if exists(select * from master..sysdatabases wherename=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(SELECT COUNT(*) FROM syscolumns WHERE id=object_id('表名') and name='字段名称')<=0
begin
    --添加字段
	alter table 表名 add 字段名称 nvarchar(50) null ; 
end
GO
---------------

--判断索引是否存在
if not exists(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID('表名', N'U') and NAME='索引名称')
    --创建索引
	Create index 索引名称 on 表名(字段名称)
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'存储过程名') and OBJECTPROPERTY(id, N'IsProcedure')= 1)
    -- 删除存储过程
    drop procedure 存储过程名
GO
---------------
--创建存储过程
CREATE PROCEDURE 存储过程名
@stackNo nvarchar(50)--参数
AS
BEGIN
	SET NOCOUNT ON;	
    --内容
End

-- 判断要创建的视图名是否存在
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 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 syscolumnswhere name='列名') and name='表名'

--sql循环(常用)
declare @start int,@sumQty int;--开始数,结束数量
set @start =1;
set @sumQty=100;--可以灵活变动
while(@start <=@sumQty )
begin
    --do .....
					
	set @start = @start +1;
end


SQL 记录一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小的技术员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值