一个存储过程完成插入,更新,删除

插入|存储过程

1.数据表
CREATE TABLE [Nta_our_travelco] (
[travelco_id] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[travelco_name] [varchar] (80) COLLATE Chinese_PRC_CI_AS NULL ,
[travelco_linkman] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[travelco_phone] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[travelco_mobile] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[travelco_check] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[travelco_website] [varchar] (80) COLLATE Chinese_PRC_CI_AS NULL ,
[travelco_email] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[travelco_fax] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[travelco_address] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[travelco_intro] [varchar] (1000) COLLATE Chinese_PRC_CI_AS NULL ,
[travelco_TLicenseNo] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT

[DF_Nta_our_travelco_travelco_TLicenseNo] DEFAULT ('交观甲号'),
[travelco_QLicenseNo] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT

[DF_Nta_our_travelco_travelco_QLicenseNo] DEFAULT ('品保(北)字号'),
[travelco_ename] [varchar] (80) COLLATE Chinese_PRC_CI_AS NULL ,
[travelco_LicenseNo] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[travelco_AgentCEO] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[username] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[password] [varchar] (32) COLLATE Chinese_PRC_CI_AS NULL ,
CONSTRAINT [PK_Nta_our_travelco] PRIMARY KEY CLUSTERED
(
[travelco_id]
) ON [PRIMARY]
) ON [PRIMARY]
GO

2.存储过程
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

ALTER PROCEDURE Nta_our_travelco_Update
@action int,
@travelco_id int =null,
@travelco_name varchar(80) =null,
@travelco_linkman varchar(20) =null,
@travelco_phone varchar(20) =null,
@travelco_mobile varchar(20) =null,
@travelco_website varchar(80) =null,
@travelco_email varchar(50) =null,
@travelco_fax char(20) =null,
@travelco_address varchar(200) =null,
@travelco_intro varchar(500) =null,
@travelco_TLicenseNo varchar(30) =null,
@travelco_QLicenseNo varchar(30) =null,
@travelco_ename varchar(80) =null,
@travelco_LicenseNo varchar(10) =null,
@travelco_AgentCEO varchar(20) =null,
@username varchar(20)=null,
@password varchar(32)=null,
@sessionid int=null, --管理员session
@password_md5 varchar(32)
AS

if @action=1 ---同行注册
begin
if exists(select * from Nta_our_travelco where username = @username)
select 10 --用户存在
else --用户不存在,快速注册
begin
insert into Nta_our_travelco(
travelco_name ,
travelco_linkman ,
travelco_phone ,
travelco_mobile ,
travelco_website ,
travelco_email ,
travelco_fax ,
travelco_address ,
travelco_intro ,
travelco_TLicenseNo ,
travelco_QLicenseNo ,
travelco_ename ,
travelco_LicenseNo ,
travelco_AgentCEO,username,password
)
values(
@travelco_name ,
@travelco_linkman ,
@travelco_phone ,
@travelco_mobile ,
@travelco_website ,
@travelco_email ,
@travelco_fax ,
@travelco_address ,
@travelco_intro ,
@travelco_TLicenseNo ,
@travelco_QLicenseNo ,
@travelco_ename ,
@travelco_LicenseNo ,
@travelco_AgentCEO,@username,@password_md5
)
select 1 --注册成功
end
end

if @action=2 --同行修改注册信息
update Nta_our_travelco set
travelco_id = @travelco_id ,
travelco_name = @travelco_name ,
travelco_linkman = @travelco_linkman ,
travelco_phone = @travelco_phone ,
travelco_mobile = @travelco_mobile ,
travelco_website = @travelco_website ,
travelco_email = @travelco_email ,
travelco_fax = @travelco_fax ,
travelco_address = @travelco_address ,
travelco_intro = @travelco_intro ,
travelco_TLicenseNo = @travelco_TLicenseNo ,
travelco_QLicenseNo = @travelco_QLicenseNo ,
travelco_ename = @travelco_ename ,
travelco_LicenseNo = @travelco_LicenseNo ,
travelco_AgentCEO = @travelco_AgentCEO
where
travelco_id = @travelco_id
select 2 --更新成功

if @action=3 --审核同行
if @sessionid=null
begin
select 5 --不是管理员ID,无法审核同行
end
else
begin
update Nta_our_travelco set
travelco_check = 1
where
travelco_id = @travelco_id

时间: 2024-08-08 00:18:28

一个存储过程完成插入,更新,删除的相关文章

SQLServer用存储过程实现插入更新数据示例_MsSql

实现 1)有相同的数据,直接返回(返回值:0): 2)有主键相同,但是数据不同的数据,进行更新处理(返回值:2): 3)没有数据,进行插入数据处理(返回值:1). [创建存储过程] Create proc Insert_Update @Id varchar(20), @Name varchar(20), @Telephone varchar(20), @Address varchar(20), @Job varchar(20), @returnValue int output as declar

我的MYSQL学习心得(八) 插入 更新 删除

这一篇<我的MYSQL学习心得(八)>将会讲解MYSQL的插入.更新和删除语句 同样的,只会讲解跟SQLSERVER不同的地方   插入 将多行查询结果插入到表中 语法 INSERT INTO table_name1(column_list1) SELECT (column_list2) FROM table_name2 WHERE (condition) INSERT INTO SELECT 在SQLSERVER里也是支持的 table_name1指定待插入数据的表:column_list1

与MSSQL对比学习MYSQL的心得(八)--插入 更新 删除_Mysql

同样的,只会讲解跟SQLSERVER不同的地方 插入 将多行查询结果插入到表中 语法 INSERT INTO table_name1(column_list1) SELECT (column_list2) FROM table_name2 WHERE (condition) INSERT INTO SELECT 在SQLSERVER里也是支持的 table_name1指定待插入数据的表:column_list1指定待插入表中要插入数据的哪些列:table_name2指定插入数据是从 哪个表中查询

SQLServer用存储过程实现插入更新数据示例

实现 1)有相同的数据,直接返回(返回值:0): 2)有主键相同,但是数据不同的数据,进行更新处理(返回值:2): 3)没有数据,进行插入数据处理(返回值:1). [创建存储过程] Create proc Insert_Update @Id varchar(20), @Name varchar(20), @Telephone varchar(20), @Address varchar(20), @Job varchar(20), @returnValue int output as declar

PostgreSQL returning 插入,更新,删除反馈数据

2. returning 例 4.3. PostgreSQL insert returning test=# create table account(id serial,name varchar,pass varchar); NOTICE: CREATE TABLE will create implicit sequence "account_id_seq" for serial column "account.id" CREATE TABLE test=# in

存储过程问题插入数据

问题描述 存储过程问题插入数据 A.B两张表 两表中有字段编码和条码,A表中有两条数据,其中这两条数据的编码不同但条码相同(或者编码相同条码不同), 当执行存储过程时,将A表的数据插入到B表中时,不能出现条码相同或者编码相同的数据(即只能插一条数据进B表) 解决方案 SQLServer用存储过程实现插入更新数据批量插入数据的存储过程MySql存储过程动态创建表并插入数据 解决方案二: 那就是多条里如何取1条啊 看你业务上的需求是保留哪条啊

如何在存储过程中实现插入更新数据

存储过程的功能非常强大,在某种程度上甚至可以替代业务逻辑层,接下来就一个小例子来说明,用存储过程插入或更新语句. 1.数据库表结构 所用数据库为Sql Server2008. 2.创建存储过程 (1)实现功能: 有相同的数据,直接返回(返回值:0): 有主键相同,但是数据不同的数据,进行更新处理(返回值:2): 没有数据,进行插入数据处理(返回值:1). 根据不同的情况设置存储过程的返回值,调用存储过程的时候,根据不同的返回值,进行相关的处理. (2)下面编码只是实现的基本的功能,具体的Sql代

更新表-sql 如何在建立一个存储过程时更新两张表的数据?

问题描述 sql 如何在建立一个存储过程时更新两张表的数据? create proc proc2 ( @OrderID int, @BookID varchar(20),--更新 orderInfo quantity:更新 orderSheet payment @BookStock int ) as update orderSheet set payment = b.newpay FROM orderInfo,orderSheet,(select (payment + price * @Book

写一个存储过程,更新5张表,表之间没有关系,表中的字段也不相同,要用传参数的形式

问题描述 写一个存储过程,更新5张表,表之间没有关系,表中的字段也不相同,要用传参数的形式 求助,写一个存储过程,更新5张表,表之间没有关系,表中的字段也不相同,要用传参数的形式.是否可以写在一个存储过程中.谢谢大家啦.遇到难题啦. update语句已经写好了,就是不知道如何整合成存储过程. 解决方案 可以的,一个存储过程可以执行多个update语句