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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454821.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454821.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454821.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java開發計算機考試服務器_2011計算機二級JAVA編程:取得服務器當前的各種具體時間...

取得服務器當前的各種具體時間/*** 取得服務器當前的各種具體時間* 回車:日期時間*/import java.util.*;public class GetNowDate{Calendar calendar null;public GetNowDate(){calendar Calendar.getInstance();calendar.setTime(new Date());}public int getYea…

(cljs/run-at (JSVM. :all) 細說函數)

前言 作為一門函數式編程語言,深入了解函數的定義和使用自然是十分重要的事情,下面我們一起來學習吧! 3種基礎定義方法 defn 定義語法 (defn name [params*]exprs*) 示例 (defn tap [ns x](println ns x)x) fn 定義語法 (fn name? [params*]…

Request的getHeader()和getParameter()的區別

區別是:一個是獲得HTTP頭信息,一個是獲得表單參數值。轉載于:https://www.cnblogs.com/pxffly/p/7460514.html

gcc中的內嵌匯編語言(Intel i386平臺)

gcc中的內嵌匯編語言(Inteli386平臺) 一.聲明 雖然Linux的核心代碼大部分是用C語言編寫的,但是不可避免的其中還是有一部分是用匯編語言寫成的。有些匯編語言代碼是直接寫在匯編源程序中的,特別是Linux的啟動代碼部分&#xff1b…

數據庫學習,樹形結構的數據庫表Schema設計方案

2019獨角獸企業重金招聘Python工程師標準>>> 程序設計過程中,我們常常用樹形結構來表征某些數據的關聯關系,如企業上下級部門、欄目結構、商品分類等等,通常而言,這些樹狀結構需要借助于數據庫完成持久化。然而目前的各…

[轉載] 手工制作Win7 OEM版

只要往微軟MSDN原版ISO的sources目錄加個“$OEM$”文件夾,再刪除sources下面的ei.cfg文件就可以了。 來源:http://zxkh19501.blog.163.com/blog/static/1237851792010629113427594/轉載于:https://www.cnblogs.com/784040932/p/win7oem.html

mysql dbo_mysql-雙重分組

我的表有兩列:名稱和等級.看起來像這樣:NAME | GRADEAdam | 1Adam | 2Adam | 2Adam | 3Frank | 2Frank | 1現在,我想創建如下所示的視圖:NAME | GRADE 1 | GRADE 2 | GRADE 3Adam | 1 | 2 | 1Frank | 1 | 1 | 0我寫了這個:SELECT …

課堂作業整理三 (集合:list接口)

集合中 list的方法列表(Arraylist和Linkedlist) 方法名功能說明ArrayList()構造方法,用于創建一個空的數組列表add(E,e)將指定的元素添加到此列表的尾部get(int index)返回此列表中指…

LINUX系統移植(史上最全最細,強烈推薦)

Linux系統移植 目 錄 第一部分 前言...................................................................................................................................8 1 硬件環境................................................................................…

The serializable class XXX does not declare a static final serialVersionUID field of type long的警告...

原文: http://blog.csdn.net/ultrakang/article/details/41820543轉載于:https://www.cnblogs.com/Baronboy/p/7465508.html

Ubuntu17.04 之 systemd 設置開機啟動

Ubuntu從16.04開始不再使用 initd 管理系統,改用 systemd。 和 Centos 一樣,升級到 Centos7 之后使用 systemd 替代 init.d 為了像以前一樣,在/etc/rc.local中設置開機啟動程序,需要以下幾步: 1、鏈接文件 systemd 默…

replaceselection();java'_Java JTextComponent.replaceSelection方法代碼示例

import javax.swing.text.JTextComponent; //導入方法依賴的package包/類public void actionPerformed(final ActionEvent evt, final JTextComponent target) {if (target ! null) {if (!target.isEditable() || !target.isEnabled()) {target.getToolkit().beep();return;}Ed…

Systemd 入門教程之命令篇

Systemd 是 Linux 系統工具,用來啟動守護進程,已成為大多數發行版的標準配置。 本文介紹它的基本用法,分為上下兩篇。今天介紹它的主要命令,下一篇介紹如何用于實戰。 一、由來 歷史上,Linux 的啟動一直采用init進程。…

GCC生成的匯編代碼

假設我們寫了一個C代碼文件 code.c包含下面代碼: int accum 0; int sum(int x, int y) { int t x y; accum t; return t; } 這是用echo命令輸入源碼的效果,簡單的就是最好的:)一、查看GCC生成的匯編代碼在命令行…

php __FILE__,__CLASS__等魔術變量,及實例

php __FILE__,__CLASS__等魔術變量,及實例 今天看到一個魔術變量,是以前沒見過的,__DIR__,我查了查,發現原來是php5.3新增的,順便舉幾個例子,解釋一下php的魔術變量 1,__FILE__ 文件的完整路徑和…

java虛方法和抽象方法_虛方法和抽象方法--基礎回顧

抽象方法是只有定義、沒有實際方法體的函數,它只能在抽象函數中出現,并且在子類中必須重寫;虛方法則有自己的函數體,已經提供了函數實現,但是允許在子類中重寫或覆蓋。重寫的子類虛函數就是被覆蓋了。抽象方法使用abst…

jQuery高度及位置操作

1. 獲取滑輪位置&#xff0c;scrolltop:上下滾動的意思。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><div style"height:100px;width:10…

you have mixed tabs and spaces fix this

http://blog.csdn.net/tonyyan19781/article/details/60882443Vs2013 IDE下&#xff0c;編輯C的工程源碼&#xff0c;在打開文件的時候&#xff0c;會出現 “ you have mixed tabs and spaces fix this ”&#xff0c; 然后給出三個選項 Tabify、Untabify、Dont show again。尤…

Systemd 入門教程之實戰篇

一、開機啟動 對于那些支持 Systemd 的軟件&#xff0c;安裝的時候&#xff0c;會自動在/usr/lib/systemd/system目錄添加一個配置文件。 如果你想讓該軟件開機啟動&#xff0c;就執行下面的命令&#xff08;以httpd.service為例&#xff09;。$ sudo systemctl enable httpd上…

從VC++到GCC移植:談兩者的語法差異

從VC到GCC移植&#xff1a;談兩者的語法差異 許式偉 &#xff08;版權聲明&#xff09; 2007-1-28 類型引用 template <classT>classFoo { typedef T::SomeType SomeType; };這段代碼在VC中一點問題也沒有&#xff0c;但是GCC并不允許&#xff0c;因為它不知道T::S…