sqlserver 存储过程 增加
CREATE PROCEDURE [dbo].[InsertMessage]( @strTable varchar(50), --表名 @strValues nvarchar(1000), --要插入的数据(用英文逗号分隔),如果是字符串类型,需加单引号 @only_field varchar(20)=NULL, --唯一性字段(列名) @only_value varchar(20)=NULL, --唯一性字段值 @msg nvarchar(50)=NULL --错误消息 ) as BEGIN SET NOCOUNT ON; declare @sqlString varchar(5000);IF @only_field is not nullbegindeclare @p int; --查询唯一性结果declare @sql nvarchar(1000); --拼接查询sql字串set @sql='SELECT @p=count(1) FROM ' +@strTable+' WHERE ' +@only_field+'='+@only_value;exec sp_executesql @sql,N'@p AS int OUTPUT',@p OUTPUTif @p > 0beginraiserror(@msg ,16,1)returnendelsebeginset @sqlString = 'insert into '+@strTable+' values ('+@strValues+')';exec(@sqlString);endend ELSEbeginset @sqlString = 'insert into '+@strTable+' values ('+@strValues+')';exec(@sqlString);end END--execute [dbo].[InsertMessage] 'base._Member',"0,2,getdate(),0,1,'4445','654321','654321',N'邹柯00'",'AcctNbr','4445',N'会员卡号已存在,不能重复添加!' --execute [dbo].[InsertMessage] 'base._Member',"0,2,getdate(),0,1,'4445','654321','654321',N'邹柯00'",NULL,NULL,NULL
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO-- 邹柯 Create PROCEDURE CollegeAdd (@username NVarChar(10),@cardid VarChar(30),@age int,@sex Char(1),@image_path VarChar(50),@job_base_id int,@level_base_id int,@certificateid VarChar(15),@certificate_path VarChar(50),@BeginTime DateTime=null,@EndTime DateTime=null,@userid int out,@ceid int out ) WITH ENCRYPTION AS BEGINSET NOCOUNT ON;SET XACT_ABORT ON;SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;BEGIN TRYBEGIN TRAN; -- Add Tutor insert into Tutor( Name, IdentityCard, Age, Gender, Photo)values (@username, @cardid, @age, @sex, @image_path);-- 获取自增IDselect @userid = scope_identity();-- Add Certificateinsert into Certificate( TutorId, JobId, LevelId, BeginTime,EndTime,Id, ImageUrl)values (@userid, @job_base_id, @level_base_id,@BeginTime, @EndTime,@certificateid, @certificate_path);-- 获取自增IDselect @ceid = scope_identity();COMMIT TRAN;END TRYBEGIN CATCHROLLBACK TRAN; throw;END CATCH END/* USE [GmkCollege] GODECLARE @return_value int,@userid int,@ceid intEXEC @return_value = [dbo].[CollegeAdd]@username = '测试8',@cardid = '测试8',@age = 99,@sex = '女',@image_path = '测试8',@job_base_id = 2,@level_base_id = 2,@certificateid = '测试8',@certificate_path = '测试8',@BeginTime='2016-06-06',@EndTime='2017-01-01',@userid = @userid OUTPUT,@ceid = @ceid OUTPUTSELECT @userid as N'@userid',@ceid as N'@ceid'SELECT 'Return Value' = @return_valueGO */
-- 邹柯 Create PROCEDURE AddSignUpInfo (--UserInfo@Name NVarChar(18)=null ,@IdCard VarChar(18)=null ,@Gender Char(2)=null ,@Area NVarChar(30)=null ,@Nation NVarChar(15)=null ,@Hobby NVarChar(50)=null ,@BirthDate DateTime=null ,@Phone VarChar(11)=null ,@TrainStatus Char(2)=null --UserTransInfo ,@TransOrganizate NVarChar(30)=null,@Certicate NVarChar(30)=null ,@StartTime DateTime=null ,@EndTime DateTime=null ,@Expectation NVarChar(300)=null ,@TransContent NVarChar(300)=null --UserPayInfo,@OrderNo Varchar(30)=null ,@Type Int=1,@Amount Int=null,@Currency Int=2,@Method Int=1,@Status Int=1 ) WITH ENCRYPTION AS BEGINSET NOCOUNT ON;SET XACT_ABORT ON;SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;BEGIN TRYBEGIN TRAN; --声明用户ID变量declare @UID int=null;declare @INFO1 int=null;declare @INFO2 int=null;declare @INFO3 int=null;--根据身份证号获取用户IDSELECT @UID=ID FROM UserCaptcha WHERE IdCard=@IdCard;--根据用户ID查询该用户之前是否已添加过报名信息--只是未支付成功或其他原因导致这条信息无效SELECT @INFO1=Count(1) FROM UserInfo WHERE UID=@UID;SELECT @INFO2=Count(1) FROM UserTransInfo WHERE UID=@UID;SELECT @INFO3=Count(1) FROM UserPayInfo WHERE UID=@UID;if @INFO1 = 0 begin-- Add UserInfo insert into UserInfo([UId],[Name],[Gender],[Nation],[Area],[Hobby],[BirthDate],[Phone],[TrainStatus])values(@UID,@Name,@Gender,@Nation,@Area,@Hobby,@BirthDate,@Phone,@TrainStatus)end elsebegin-- Update UserInfo Update UserInfo SET[Name]=@Name,[Gender]=@Gender,[Nation]=@Nation,[Area]=@Area,[Hobby]=@Hobby,[BirthDate]=@BirthDate,[Phone]=@Phone,[TrainStatus]=@TrainStatusWhere UId=@UIDendif @INFO2 = 0begin-- Add UserTransInfoinsert into UserTransInfo([UId],[TransOrganizate],[Certicate],[TransContent],[Expectation],[StartTime],[EndTime])values(@UID,@TransOrganizate,@Certicate,@TransContent,@Expectation,@StartTime,@EndTime);endelsebegin-- Update UserTransInfoUpdate UserTransInfo SET [TransOrganizate]=@TransOrganizate,[Certicate]=@Certicate,[TransContent]=@TransContent,[Expectation]=@Expectation,[StartTime]=@StartTime,[EndTime]=@EndTimeWhere UId=@UIDendif @INFO3 = 0begin-- Add UserPayInfoinsert into UserPayInfo([UId],[OrderNo],[Type],[Amount],[Currency],[Method],[Status])values(@UID,@OrderNo,@Type,@Amount,@Currency,@Method,@Status);endelsebegin-- Update UserPayInfoUpdate UserPayInfo SET [OrderNo]=@OrderNo,[Type]=@Type,[Amount]=@Amount,[Currency]=@Currency,[Method]=@Method,[Status]=@StatusWhere UId=@UIDendCOMMIT TRAN;END TRYBEGIN CATCHROLLBACK TRAN; throw;END CATCH END/* USE [GmkCollege] GODECLARE @return_value intEXEC @return_value = [dbo].[AddSignUpInfo]@Name = 'zouke',@IdCard = '111111',@Gender = 1,@Area = 'zzzzzzzz',@Nation = '汉族',@Hobby = '足球、篮球呢',@BirthDate = '2016-01-01',@Phone = '18761939022',@TrainStatus = 1,@TransOrganizate = 'GMK',@Certicate = '理疗师',@StartTime = '2011-01-01',@EndTime = '2012-01-01',@Expectation = 'cccccccc',@TransContent = 'ddddddd',@OrderNo="2222222222",@Type=1,@Amount=100,@Currency=2,@Method=1,@Status=1,SELECT 'Return Value' = @return_valueGO */
转载于:https://www.cnblogs.com/zouke1220/p/7459323.html
sqlserver 存储过程 增加相关推荐
- SQLSERVER存储过程基本语法
一.定义变量 --简单赋值 declare @a int set @a=5 print @a --使用select语句赋值 declare @user1 nvarchar(50) select @ ...
- SQLserver存储过程加密、解密
SQLserver存储过程加密.解密 作者:邱名涛 撰写时间:2019 年 6 月 22 日 关键技术: 数据库存储过程加密.解密 –加密存储过程 –判断表是否存在,如果存在就删除 if object ...
- 网络工作室暑假后第二次培训资料(SQLServer存储过程和ADO.NET访问存储过程)整理(一)...
因为昨天我的SQL Server 2008数据库在使用的时候突然就打不开了.而起前天还用它来写T-SQL语句来着.所以很是郁闷啊,到网上查询以后,不能解决,就干脆重新安装了一边,所以昨天整理的内容不能 ...
- PHP写sqlserver事务,php调用sqlserver存储过程使用事务处理
第一次编写 sqlserver存储过程并在php里调用,把脑瓜都整大了,奋战了一天多最后还是搞定了. 实现功能:在 sqlserver里面实现事务处理,保证数据库操作安全: 接收sqlserver存储 ...
- python获取数据库的存储过程_python远程调用sqlserver存储过程记录
开发中需要python远程调用sqlserver存储过程.搜索了网上有两种方式,pymssql和pyodbc.开始采用第一种方式开发,不过无法拿到存储过程中的返回数据,后采用pyodbc开发,当然存储 ...
- java调用存储过程sqlserver_Java调用SqlServer存储过程怎么实现 | 学步园
在使用Java开发时,经常会遇到调用SqlServer存储过程的问题.下面学步园小编来讲解下Java调用SqlServer存储过程怎么实现? Java调用SqlServer存储过程怎么实现 1.数据库 ...
- 破解SQLSERVER存储过程的加密
破解SQLSERVER存储过程的加密 http://download.csdn.net/detail/liujiayu2/8620519
- sqlserver存储过程入门之 游标
1.游标是SQL的一个内存工作区,由系统或用户以变量的形式定义. 以下是基本步伐: 不懂的问我 定义,打开 ,使用,关闭,释放 DECLARE @temp VARCHAR(12) -- 临时变量 de ...
- sqlserver存储过程入门?看不懂打死我
sqlserver存储过程入门 1.工具 2.基础知识 游标 DECLARE 赋值 set 赋值 into if else 代替 REPLACE CASE WHEN CONCAT 函数 字符串连接 B ...
最新文章
- 鸿蒙之境的称号,《神都夜行录》鸿蒙之境80级古都凶煞打法
- boost::coroutine2模块实现斐波那契数列的测试程序
- 砂 即懒且忙 只有随笔
- 看得懂的外观设计模式 python3 实现
- java创建子类对象的步骤_一通Spring骚操作:我敢说没人比我更懂Java对象创建
- 爬虫-csdn博客爬虫-打造具有搜索功能的小工具
- webapi 初识 net
- python爬虫怎么赚钱-python爬虫怎么赚钱
- UiPath PDF操作
- 国产手机下乡难以撼动山寨手机农村市场
- 麻雀虽小,五脏俱全 - Java工具类库 - Hutool
- 信达生物港交所上市:重点锁定肿瘤领域 募资33亿港元
- 从零开始,简单几步教会你shopify店铺设计
- 【Win8自带微软输入法删除图解】
- JavaScript 编程精解 中文第三版 九、正则表达式
- (美化)WordPress网站添加自定义字体
- ant安装、环境变量配置、ant实例
- 调用QQ客服对话聊天窗口:
- Mifare经典工具如何使用(上)-- 摸索的过程
- 根据接口文档中的入参,生成自动化测试用例中的异常测试用例,包含用例描述,用例数据...
热门文章
- 【计蒜客 - 2019南昌邀请赛网络赛 - K】MORE XOR(数学,找规律,打表)
- *【牛客 - 326B】背单词(线性dp)
- 【CodeForces - 245H 】Queries for Number of Palindromes (带容斥的区间dp)
- 【CodeForces - 1066A~E】水题,模拟(有技巧),思维,题意难懂的模拟,二进制问题(有技巧)
- 【CodeForces - 1027C】Minimum Value Rectangle (数学,公式化简,思维,卡常卡memset)
- 【POJ - 1001 】Exponentiation (Java大数,高精度)
- android和ios系统的内存,WP和Saipan系统的流畅程度相当于ios,占用的内存很少,但是为什么要用Android取代它...
- json 潜逃 结构体_JSON还原为结构体 - osc_t5zhwnvx的个人空间 - OSCHINA - 中文开源技术交流社区...
- 模拟注册用户,按照以下要求实现相关功能:
- 计算机用于数据管理经历了,管理系统中计算机应用--期中测验答案