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 存储过程 增加相关推荐

  1. SQLSERVER存储过程基本语法

    一.定义变量 --简单赋值 declare @a int set @a=5 print @a   --使用select语句赋值 declare @user1 nvarchar(50) select @ ...

  2. SQLserver存储过程加密、解密

    SQLserver存储过程加密.解密 作者:邱名涛 撰写时间:2019 年 6 月 22 日 关键技术: 数据库存储过程加密.解密 –加密存储过程 –判断表是否存在,如果存在就删除 if object ...

  3. 网络工作室暑假后第二次培训资料(SQLServer存储过程和ADO.NET访问存储过程)整理(一)...

    因为昨天我的SQL Server 2008数据库在使用的时候突然就打不开了.而起前天还用它来写T-SQL语句来着.所以很是郁闷啊,到网上查询以后,不能解决,就干脆重新安装了一边,所以昨天整理的内容不能 ...

  4. PHP写sqlserver事务,php调用sqlserver存储过程使用事务处理

    第一次编写 sqlserver存储过程并在php里调用,把脑瓜都整大了,奋战了一天多最后还是搞定了. 实现功能:在 sqlserver里面实现事务处理,保证数据库操作安全: 接收sqlserver存储 ...

  5. python获取数据库的存储过程_python远程调用sqlserver存储过程记录

    开发中需要python远程调用sqlserver存储过程.搜索了网上有两种方式,pymssql和pyodbc.开始采用第一种方式开发,不过无法拿到存储过程中的返回数据,后采用pyodbc开发,当然存储 ...

  6. java调用存储过程sqlserver_Java调用SqlServer存储过程怎么实现 | 学步园

    在使用Java开发时,经常会遇到调用SqlServer存储过程的问题.下面学步园小编来讲解下Java调用SqlServer存储过程怎么实现? Java调用SqlServer存储过程怎么实现 1.数据库 ...

  7. 破解SQLSERVER存储过程的加密

    破解SQLSERVER存储过程的加密 http://download.csdn.net/detail/liujiayu2/8620519

  8. sqlserver存储过程入门之 游标

    1.游标是SQL的一个内存工作区,由系统或用户以变量的形式定义. 以下是基本步伐: 不懂的问我 定义,打开 ,使用,关闭,释放 DECLARE @temp VARCHAR(12) -- 临时变量 de ...

  9. sqlserver存储过程入门?看不懂打死我

    sqlserver存储过程入门 1.工具 2.基础知识 游标 DECLARE 赋值 set 赋值 into if else 代替 REPLACE CASE WHEN CONCAT 函数 字符串连接 B ...

最新文章

  1. 鸿蒙之境的称号,《神都夜行录》鸿蒙之境80级古都凶煞打法
  2. boost::coroutine2模块实现斐波那契数列的测试程序
  3. 砂 即懒且忙 只有随笔
  4. 看得懂的外观设计模式 python3 实现
  5. java创建子类对象的步骤_一通Spring骚操作:我敢说没人比我更懂Java对象创建
  6. 爬虫-csdn博客爬虫-打造具有搜索功能的小工具
  7. webapi 初识 net
  8. python爬虫怎么赚钱-python爬虫怎么赚钱
  9. UiPath PDF操作
  10. 国产手机下乡难以撼动山寨手机农村市场
  11. 麻雀虽小,五脏俱全 - Java工具类库 - Hutool
  12. 信达生物港交所上市:重点锁定肿瘤领域 募资33亿港元
  13. 从零开始,简单几步教会你shopify店铺设计
  14. 【Win8自带微软输入法删除图解】
  15. JavaScript 编程精解 中文第三版 九、正则表达式
  16. (美化)WordPress网站添加自定义字体
  17. ant安装、环境变量配置、ant实例
  18. 调用QQ客服对话聊天窗口:
  19. Mifare经典工具如何使用(上)-- 摸索的过程
  20. 根据接口文档中的入参,生成自动化测试用例中的异常测试用例,包含用例描述,用例数据...

热门文章

  1. 【计蒜客 - 2019南昌邀请赛网络赛 - K】MORE XOR(数学,找规律,打表)
  2. *【牛客 - 326B】背单词(线性dp)
  3. 【CodeForces - 245H 】Queries for Number of Palindromes (带容斥的区间dp)
  4. 【CodeForces - 1066A~E】水题,模拟(有技巧),思维,题意难懂的模拟,二进制问题(有技巧)
  5. 【CodeForces - 1027C】Minimum Value Rectangle (数学,公式化简,思维,卡常卡memset)
  6. 【POJ - 1001 】Exponentiation (Java大数,高精度)
  7. android和ios系统的内存,WP和Saipan系统的流畅程度相当于ios,占用的内存很少,但是为什么要用Android取代它...
  8. json 潜逃 结构体_JSON还原为结构体 - osc_t5zhwnvx的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. 模拟注册用户,按照以下要求实现相关功能:
  10. 计算机用于数据管理经历了,管理系统中计算机应用--期中测验答案