SQL存储过程-新增和修改,参数Xml数据类型
- SELECT T.c.query('.') AS result
- FROM @x.nodes('/root/Member') T(c);
- /****** Object: Procedure [dbo].[UP_ConfScheduled_AddScheduledConf] Script Date: 2014-3-17 9:16:26 ******/
- USE [ytSummitTeleConf_DB];
- GO
- SET ANSI_NULLS ON;
- GO
- SET QUOTED_IDENTIFIER ON;
- GO
- /*=============================================================
- =============================================================*/
- CREATE PROCEDURE [dbo].[UP_ConfScheduled_AddScheduledConf]
- @BookConf XML,
- @MemberList XML
- AS
- SET NOCOUNT ON
- /*
- --预约会议信息
- <Root>
- <ConfRoom>4F3A595F-DCAF-49DD-806F-1E4BA0F58D33</ConfRoom>
- <SeqNo>254941</SeqNo>
- <MasterMebID>C8C71FAE-8365-4501-8EC0-4C32120A5CE3</MasterMebID>
- <ConfTitle>2014-2-2会议</ConfTitle>
- <BookTime>2014-1-17 0:00:00</BookTime>
- <ConfType>1</ConfType>
- <AddConfMode>0</AddConfMode>
- <WriteTime>2014-1-17 11:56:27</WriteTime>
- <Status>10</Status>
- <IsRecord>0</IsRecord>
- </Root>
- --预约会议成员列表
- <Root>
- <Member>
- <Phoneno>01052810000,8312</Phoneno>
- <Name>主持人</Name>
- <Mode>1</Mode>
- <MebGuid>C8C71FAE-8365-4501-8EC0-4C32120A5CE3</MebGuid>
- <AddTime>2014-1-17 11:55:02</AddTime>
- <IsModerator>True</IsModerator>
- </Member>
- </Root>
- */
- DECLARE
- @ConfRoom UNIQUEIDENTIFIER,
- @BookTime DATETIME
- SELECT
- @BookTime = T.c.value('(./BookTime/text())[1]', 'DATETIME'),
- @ConfRoom = T.c.value('(./ConfRoom/text())[1]', 'UNIQUEIDENTIFIER')
- FROM @BookConf.nodes('Root') AS T(c)
- IF EXISTS
- (
- SELECT 1
- FROM dbo.WTC_TB_BOOKCONF
- WHERE CONFROOM = @ConfRoom
- )
- BEGIN
- UPDATE A
- SET A.BookTime = B.BookTime,
- A.ConfTitle = B.ConfTitle,
- A.ConfType = B.ConfType,
- A.AddConfMode = B.AddConfMode,
- A.WRITETIME = B.WRITETIME,
- A.[Status] = B.[Status],
- A.IsRecord = B.IsRecord,
- A.MasterMebID = B.MasterMebID
- FROM dbo.WTC_TB_BOOKCONF A
- INNER JOIN
- (
- SELECT
- BookTime = @BookTime,
- SeqNo = T.c.value('(./SeqNo/text())[1]', 'INT'),
- ConfRoom = @ConfRoom,
- ConfTitle = T.c.value('(./ConfTitle/text())[1]', 'VARCHAR(256)'),
- ConfType = T.c.value('(./ConfType/text())[1]', 'TINYINT'),
- AddConfMode = T.c.value('(./AddConfMode/text())[1]', 'TINYINT'),
- WRITETIME = T.c.value('(./WriteTime/text())[1]', 'DATETIME'),
- [Status] = T.c.value('(./Status/text())[1]', 'TINYINT'),
- IsRecord = T.c.value('(./IsRecord/text())[1]', 'TINYINT'),
- MasterMebID = T.c.value('(./MasterMebID/text())[1]', 'UNIQUEIDENTIFIER')
- FROM @BookConf.nodes('Root') AS T(c)
- ) B
- ON A.CONFROOM = B.ConfRoom
- END
- ELSE
- BEGIN
- INSERT INTO WTC_TB_BOOKCONF
- (
- BOOKTIME,
- SeqNo,
- CONFROOM,
- CONFTITLE,
- CONFTYPE,
- ADDCONFMODE,
- WRITETIME,
- [STATUS],
- IsRecord,
- MasterMebID
- )
- SELECT
- BookTime = T.c.value('(./BookTime/text())[1]', 'DATETIME'),
- SeqNo = T.c.value('(./SeqNo/text())[1]', 'INT'),
- @ConfRoom,
- ConfTitle = T.c.value('(./ConfTitle/text())[1]', 'VARCHAR(256)'),
- ConfType = T.c.value('(./ConfType/text())[1]', 'TINYINT'),
- AddConfMode = T.c.value('(./AddConfMode/text())[1]', 'TINYINT'),
- WRITETIME = T.c.value('(./WriteTime/text())[1]', 'DATETIME'),
- [Status] = T.c.value('(./Status/text())[1]', 'TINYINT'),
- IsRecord = T.c.value('(./IsRecord/text())[1]', 'TINYINT'),
- MasterMebID = T.c.value('(./MasterMebID/text())[1]', 'UNIQUEIDENTIFIER')
- FROM @BookConf.nodes('Root') AS T(c)
- END
- IF EXISTS
- (
- SELECT 1
- FROM dbo.WTC_TB_BOOKCONFQUEUE
- WHERE CONFROOM = @ConfRoom
- )
- BEGIN
- UPDATE dbo.WTC_TB_BOOKCONFQUEUE
- SET BOOKTIME = @BookTime
- WHERE CONFROOM = @ConfRoom
- END
- ELSE
- BEGIN
- INSERT INTO dbo.WTC_TB_BOOKCONFQUEUE
- (
- CONFROOM,
- BOOKTIME,
- [STATUS]
- )
- VALUES
- (
- @ConfRoom,
- @BookTime,
- 0
- )
- END
- IF EXISTS
- (
- SELECT 1
- FROM dbo.WTC_TB_BOOKMEMBER WITH(NOLOCK)
- WHERE CONFROOM = @ConfRoom
- )
- BEGIN
- DELETE dbo.WTC_TB_BOOKMEMBER
- WHERE CONFROOM = @ConfRoom
- END
- INSERT INTO dbo.WTC_TB_BOOKMEMBER
- (
- MebID,
- CONFROOM,
- PHONENO,
- PHONENOTE,
- MEMBERTYPE
- )
- SELECT
- MebGuid = T.c.value('(./MebGuid/text())[1]', 'UNIQUEIDENTIFIER'),
- ConfRoom = @ConfRoom,
- Phoneno = T.c.value('(./Phoneno/text())[1]', 'VARCHAR(32)'),
- Name = T.c.value('(./Name/text())[1]', 'VARCHAR(128)'),
- Mode = T.c.value('(./Mode/text())[1]', 'TINYINT')
- FROM @MemberList.nodes('Root/Member') AS T(c)
- GO
取消预约会议-事务处理
- /****** Object: Procedure [dbo].[UP_ConfScheduled_CancelScheduledConf] Script Date: 2014-3-17 9:23:26 ******/
- USE [ytSummitTeleConf_DB];
- GO
- SET ANSI_NULLS ON;
- GO
- SET QUOTED_IDENTIFIER ON;
- GO
- /*=============================================================
- =============================================================*/
- CREATE PROCEDURE [dbo].[UP_ConfScheduled_CancelScheduledConf]
- @SeqNo INT,
- @ConfRoom UNIQUEIDENTIFIER
- AS
- SET NOCOUNT ON
- IF NOT EXISTS
- (
- SELECT 1
- FROM dbo.WTC_TB_BOOKCONF WITH(NOLOCK)
- WHERE CONFROOM = @ConfRoom
- AND [STATUS] = 0
- )
- BEGIN
- RETURN -1 --预约会议不存在.
- END
- IF EXISTS
- (
- SELECT 1
- FROM dbo.WTC_TB_USERCONF WITH(NOLOCK)
- WHERE CONFROOM = @ConfRoom
- )
- BEGIN
- RETURN -2 --会议已经召开.
- END
- BEGIN TRY
- BEGIN TRAN
- --取消预约
- UPDATE dbo.WTC_TB_BOOKCONF
- SET [STATUS] = 3
- WHERE CONFROOM = @ConfRoom
- AND [STATUS] = 0
- --删除预约队列
- DELETE dbo.WTC_TB_BOOKCONFQUEUE
- WHERE CONFROOM = @ConfRoom
- --保留预约会议信息,以便统计短信等费用
- INSERT INTO dbo.WTC_TB_USERCONF
- (
- CONFROOM,
- SeqNo,
- CONFTITLE,
- CONFTIME,
- ISRECORD,
- MasterMebID,
- Flag
- )
- SELECT
- A.CONFROOM,
- A.SeqNo,
- A.CONFTITLE,
- A.BOOKTIME,
- A.IsRecord,
- A.MasterMebID,
- 20 --取消的预约会议
- FROM dbo.WTC_TB_BOOKCONF A WITH(NOLOCK)
- WHERE A.CONFROOM = @ConfRoom
- AND NOT EXISTS
- (
- SELECT 1
- FROM dbo.WTC_TB_USERCONF B WITH(NOLOCK)
- WHERE B.CONFROOM = A.CONFROOM
- )
- INSERT INTO dbo.WTC_TB_USERCONFMEB
- (
- MebID,
- CONFROOM,
- PHONENO,
- PHONENOTE,
- MEMBERTYPE,
- ADDCONFTIME,
- ADDORDER
- )
- SELECT
- A.MebID,
- A.CONFROOM,
- A.PHONENO,
- A.PHONENOTE,
- A.MEMBERTYPE,
- GETDATE(),
- ROW_NUMBER() OVER(ORDER BY GETDATE())
- FROM dbo.WTC_TB_BOOKMEMBER A WITH(NOLOCK)
- WHERE CONFROOM = @ConfRoom
- AND NOT EXISTS
- (
- SELECT 1
- FROM dbo.WTC_TB_USERCONFMEB B WITH(NOLOCK)
- WHERE B.CONFROOM = A.CONFROOM
- AND B.MebID = A.MebID
- )
- --保留预约会议信息,以便统计短信等费用
- INSERT INTO dbo.WTC_TB_CONFROOM
- (
- CONFROOM,
- SeqNo,
- CONFID,
- CREATETIME,
- CREATEONLINEID,
- CONFTITLE,
- UPDATETIME,
- IsPlayMusic,
- CONFTYPE,
- CONFDATAKEY,
- RECORDTHREADID,
- IsRecord
- )
- SELECT
- A.CONFROOM,
- A.SeqNo,
- 0,
- A.BOOKTIME,
- A.MasterMebID,
- A.CONFTITLE,
- GETDATE(),
- 0,
- 0,
- '',
- 0,
- A.IsRecord
- FROM dbo.WTC_TB_BOOKCONF A WITH(NOLOCK)
- WHERE A.CONFROOM = @ConfRoom
- AND NOT EXISTS
- (
- SELECT 1
- FROM dbo.WTC_TB_CONFROOM B WITH(NOLOCK)
- WHERE B.CONFROOM = A.CONFROOM
- )
- INSERT INTO dbo.WTC_TB_CONFMEMBERS
- (
- MebID,
- CONFROOM,
- PHONENO,
- DATA,
- UPDATETIME,
- ADDORDER
- )
- SELECT
- A.MebID,
- A.CONFROOM,
- A.PHONENO,
- A.PHONENOTE,
- GETDATE(),
- ROW_NUMBER() OVER(ORDER BY GETDATE())
- FROM dbo.WTC_TB_BOOKMEMBER A WITH(NOLOCK)
- WHERE CONFROOM = @ConfRoom
- AND NOT EXISTS
- (
- SELECT 1
- FROM dbo.WTC_TB_CONFMEMBERS B WITH(NOLOCK)
- WHERE B.CONFROOM = A.CONFROOM
- AND B.MebID = A.MebID
- )
- COMMIT TRAN
- END TRY
- BEGIN CATCH
- ROLLBACK TRAN
- RETURN -100 --数据库异常
- END CATCH
- GO
获取预约会议
- /****** Object: Procedure [dbo].[UP_ConfScheduled_GetScheduledConfs] Script Date: 2014-3-17 9:29:19 ******/
- USE [ytSummitTeleConf_DB];
- GO
- SET ANSI_NULLS ON;
- GO
- SET QUOTED_IDENTIFIER ON;
- GO
- /*=============================================================
- =============================================================*/
- CREATE PROCEDURE [dbo].[UP_ConfScheduled_GetScheduledConfs]
- @SeqNo INT
- AS
- SET NOCOUNT ON
- SELECT
- A.CONFROOM
- ,A.CONFTITLE
- ,A.BOOKTIME
- ,A.WRITETIME
- ,B.MemberCount
- ,A.IsRecord
- FROM dbo.WTC_TB_BOOKCONF A WITH(NOLOCK)
- OUTER APPLY
- (
- SELECT MemberCount = COUNT(1)
- FROM dbo.WTC_TB_BOOKMEMBER B WITH(NOLOCK)
- WHERE B.CONFROOM = A.CONFROOM
- ) B
- WHERE A.SeqNo = @SeqNo
- AND A.[STATUS] = 0
- ORDER BY A.BOOKTIME desc
- GO
修改参会模式
- /****** Object: Procedure [dbo].[UP_ConfScheduled_SetParticipantTalkMode] Script Date: 2014-3-17 9:32:26 ******/
- USE [ytSummitTeleConf_DB];
- GO
- SET ANSI_NULLS ON;
- GO
- SET QUOTED_IDENTIFIER ON;
- GO
- /*=============================================================
- =============================================================*/
- CREATE PROCEDURE dbo.UP_ConfScheduled_SetParticipantTalkMode
- @ConfRoom UNIQUEIDENTIFIER,
- @MemberList XML
- AS
- SET NOCOUNT ON
- /*
- <Root>
- <Member>
- <MebID>5685C2C9-70B7-4721-AB77-385FEDD7B0CF</MebID>
- <MemberType>1</MemberType>
- </Member>
- <Member>
- <MebID>E495548E-55FA-4588-AB9A-99CC7ED3D758</MebID>
- <MemberType>4</MemberType>
- </Member>
- </Root>
- */
- UPDATE A
- SET A.MemberType = B.MemberType
- FROM dbo.WTC_TB_BOOKMEMBER A
- INNER JOIN
- (
- SELECT
- MebID = T.c.value('(./MebID/text())[1]', 'UNIQUEIDENTIFIER'),
- MemberType = T.c.value('(./MemberType/text())[1]', 'TINYINT')
- FROM @MemberList.nodes('Root/Member') AS T(c)
- ) B
- ON A.MebID = B.MebID
- WHERE A.CONFROOM = @ConfRoom
- GO
SQL存储过程-新增和修改,参数Xml数据类型的更多相关文章
- 转sql server新增、修改字段语句(整理)
添加字段的SQL语句的写法: 通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数增加字段: alter table [表名] ...
- SQL——存储过程实例 调用带参数的过程(成绩输出)
create or replace procedure test_score(input in number,output out char) is begin then begin output : ...
- sql批量新增,修改
<insert id="insertExtDocList" parameterType="map"> INSERT INTO extprjdoc ( ...
- 二、sql新增后返回主键|sql 使用 FOR XML PATH实现字符串拼接|sql如果存在就修改不存在就新增
一.sql新增后返回主键 1,返回自增的主键: INSERT INTO 表名 (字段名1,字段名2,字段名3,…) VALUES (值1,值2,值3,…) SELECT @@IDENTITY 2,返回 ...
- SQL Server 2008 对XML 数据类型操作
原文 http://www.cnblogs.com/qinjian123/p/3240702.html 一.前言 从 SQL Server 2005 开始,就增加了 xml 字段类型,也就是说可以直接 ...
- SQL 存储过程 解析XML
第一种说明: 我看过这样一篇文章,如下 在SQL Server2005中,微软延续了 2000中一个特性(即支持XML类型的数据),并加强了对XML 数据列.XML变量以及XML索引的支持 ...
- SQL Server存储过程Return、output参数及使用技巧
SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...
- sql 解析字符串添加到临时表中 sql存储过程in 参数输入
sql 解析字符串添加到临时表中 sql存储过程in 参数输入 解决方法 把字符串解析 添加到 临时表中 SELECT * into #临时表 FROM dbo.Func_SplitOneCol ...
- java 执行sql错误 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (""): 数据类型 0x38 未知
连接数据库时设置:Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE ,ResultSet.CONCUR_R ...
随机推荐
- jQuery插件开发的两种方法及$.fn.extend的详解
jQuery插件开发分为两种: 1 类级别 类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQuery.ex ...
- Android开发教程:shape和selector的结合使用
shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector.可以这样说,shape和 ...
- POJ 2251 BFS(简单)
一道三维的BFS Dungeon Master Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 24003 Accepted: 9 ...
- linuxz终端开启echo颜色显示
echo输出命令echo [选项] [输出内容]-e //支持反斜线控制的字符转换:控制字符:\a //输出警告音:\b //退格键,也就是向左删除键:\n //换行符:\r //回车键:\t //制 ...
- applicationCache对象
applicationCache对象代表了本地缓存,可以在js中进行一些操作.可以用它来通知用户本地缓存中已经被更新,也允许用户手工更新本地缓存.applicationCache.addEventLi ...
- mysql 根据某字段特定值排序
比如: 表 :user 字段:orders (值为 1,2,3) 要求根据字段 orders 按2 -> 1 -> 3 排序 使用以下语句实现SELECT *FROM userORDER ...
- 编程:使用递归方式判断某个字串是否回文(Palindrome)
Answer: import java.util.Scanner; public class Palindrome { private static int len;//全局变量整型数据 privat ...
- OpenCV MAT基本图像容器
参考博客: OpenCv中cv::Mat和IplImage,CvMat之间的转换 Mat - 基本图像容器 Mat类型较CvMat和IplImage有更强的矩阵运算能力,支持常见的矩阵运算(参照Mat ...
- php统计网站访问次数的一个简单方法
这里主要用到了session保存当前访问者,并将访问次数写入本地文件. <? @session_start(); $counter = intval(file_get_contents(&quo ...
- 使用 ServiceStack.Text 序列化 json的实现代码【转】
转自:http://www.jb51.net/article/38338.htm 今天发篇文章总结下自己使用 ServiceStack.Text 来序列化 json.它的速度比 Newtonsoft. ...