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 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 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='表名'

一些杂乱:

create procedure dbo.table1_proc   //插入存储过程
(
  @tableName varchar(50),
  @loginName varchar(50),
  @loginPwd varchar(16),
  @sex char(2),
  @email varchar(100),
  @address varchar(225),
  @phone varchar(11),
  @score int,
  @lastId int  
)
as
begin
  set nocount on;
  insert into table1
  values(@tableName,@loginName,@loginPwd,@sex,@email,@address,@phone,@score)
  set @lastId=IDENT_CURRENT('tableId')
end

exec dbo.table1_proc @lastId,'唐先生','tang','123456','男','fwew@qq.com','上海','1365656785',99

---------------------------------------------

declare @lastId int
set @lastId=@lastId

--------------------------------------------

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create procedure dbo.table1UpdataById_proc   //更新
(
   
   @tableName varchar(50),
   @phone varchar(11),
   @tableId int
)  
as
begin
  update table1 set tableName=@tableName,phone=@phone where tableId=@tableId
  
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值