为什么这段存储过程中没有CREATE,直接用了ALTER

gezhu1212 2021-03-31 09:27:33

USE [db_House]
GO
/****** Object: StoredProcedure [dbo].[proc_employee_insert] Script Date: 2021/3/31 8:50:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[proc_employee_insert]
@employee_ID varchar (10)=null,
@employee_name varchar (20)=null,
@employee_sex varchar(10)=null,
@employee_birthday datetime,
@employee_phone varchar(20),
@employee_cardID varchar(20),
@employee_address varchar(50),
@gov_id varchar (16),
@employee_study varchar(16),
@employee_basepay numeric

as
select @employee_ID=Max(employee_ID) from tb_employee
if(@employee_ID is null)
set @employee_ID='emp1001'--作动见编号就知道是什么表
else
set @employee_ID='emp'+cast(cast(substring(@employee_ID,4,4) as int)+1 as varchar(20))

insert into tb_employee values(@employee_ID,@employee_name,@employee_sex,
@employee_birthday,@employee_phone,@employee_cardID,
@employee_address,@gov_id,@employee_study,@employee_basepay)
end
...全文
270 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
morliz子轩 2021-03-31
  • 打赏
  • 举报
回复
存在的Proc,就用alter。 不需在新建的,用Create。 当然也可以不管存不存在,先判断删除Proc。再创建:

if exists(select 1 from sysobjects where name='存储过程命名')
	Drop Proc [dbo].[存储过程命名]
Go
shoppo0505 2021-03-31
  • 打赏
  • 举报
回复
alter是修改,如果之前已经有了这个存储过程,那么需要用alter修改,如果没有的话,才是create

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧