首先需要判断一下是否存在存储过程
if exists (select * from sys.procedures where name='存储过程名字') --判断是否存在存储过程
drop proc 存储过程名字 --删除存储过程
go
create proc 存储过程名字([@参数 数据类型 ]) --创建一个存储过程(参数可以带,也可不带,根据实际需求)
as
增、删、改、查 字段 --(存储过程的增、删、改、查 字段 必须写在as go之间)
go
eval 存储过程名字 --(调用存储过程 ,创建的存储过程带有参数,调用时也需要写入参数,参数顺序必须和创建时一 一对应)
完整的多条件查询存储过程、
create proc sel (@ProjectID int=0,@Content varchar(200)='',@TaskState int=0)
as
declare @sql varchar(max) --定义一个字符串,给他一个最大长度,用来接收我们的查询语句
set @sql = 'select Project.ProjectName,Task.* from Project,Task where Project.ProjectID= Task.ProjectID
and Content like ''%'+@Content+'%''' --模糊的联合查询,‘%’是通配符,表示0个或多个站位符
if(@ProjectID<>0) --判断整数类型的参数是否有值,如果有就查询,没有就跳过
set @sql+=' and Project.ProjectID ='+ convert(varchar,@ProjectID)
if(@TaskState<>0)
set @sql+=' and TaskState ='+ convert(varchar,@TaskState)
print @sql --输出一下我们前面获取到的所有字符串
exec (@sql) --用exec输出必须带上(),
go
exec sel --调用存储过程sel查询全部
exec sel 1,‘王五’,1 --调用有参的sel准确查询
以上的查询存储过程是一个完整的多条件查询,创建时一定要注意定义参数时需要用@开头,数据类型跟在后面,两个参数之间用,隔开
if exists (select * from sys.procedures where name='selP')
drop proc selP
go
create proc selP
as
select * from Project
go
exec selp --这是一个简单的查询存储过程,只能查询一张表的全部信息
创建修改存储过程、
create proc up (@TaskID int) --修改表中的数据需要主键,所以我们创建存储过程是必须要有主键的参数
as
update Task set TaskState=2,FinishedTime=GETDATE() where TaskID=@TaskID --修改语句跟平常我们所写的一样,只需要把有参数的传到相应的位置即可
go
exec up 5 --使用时必需要传入相应的参数
删除和添加同上