1:SqlServer简单的操作XML:

ALTER PROCEDURE [dbo].[SP_CRM_FranchiseeRecharge_Money]
@Create_By VARCHAR(),
@xmlStr1 NVARCHAR(MAX) -写在这里面的为 传入的参数
AS
BEGIN as begin后面的为自定义的变量
SET NOCOUNT ON;
DECLARE @xml XML = @xmlStr1; sqlserver操作XML T-SQL提供了以下几个针对XML类型的查询函数:
query(XQuery):利用Xquery查询符合条件的元素集合。
value(XQuery,Type):利用Xquery查询具体元素的值,Type定义值的类型。
exist(XQuery):利用Xquery查询是否存在符合条件的元素。
nodes(XQuery):利用Xquery获得一个结果集。 INSERT INTO qqtest(xmlinfo) xmlinfo 为字符串类型
VALUES(
N'<root>
<person>
<id>F001</id>
<name>F001</name>
<age></age>
</person>
</root>'
) DECLARE @errorCode INT;
DECLARE @errorMsg VARCHAR();
BEGIN TRY
SET @errorCode = ;
SET @errorMsg = '';
DECLARE @xml XML;
SELECT @xml = xmlinfo
FROM dbo.qqtest
WHERE id =; SELECT S.value('id[1]', 'varchar(30)') id,
S.value('name[1]', 'varchar(30)') _Name,
S.value('age[1]', 'varchar(30)') age
FROM @xml.nodes('/root/person') AS A(S); //B(S) 都是没有问题的 @xml.nodes('/root/person') AS A(S) 当做一张表来操作了
SET @errorCode = ;
END TRY
BEGIN CATCH
SET @errorCode = ;
SET @errorMsg = ERROR_MESSAGE();
RAISERROR(N'error:XML文件格式错误:', , ,@errorMsg);
PRINT(@errorMsg)
END CATCH 获取XML数据 ,把XML数据当做一个表格 @xml.nodes('/Root/data') AS T(S); select S.value('ID[1]','int')as ID, S.value('Name[1]','nvarchar(50)')as Name
FROM @xml.nodes('/Root/data') AS T(S); 写入临时表
INSERT INTO #tbCRM_FranchiseeRecharge
(
[Recharge_ID],
[Franchisee_ID],
[Recharge_Credit],
[Recharge_Amount]
)
SELECT DISTINCT
NEWID(),
S.value('Franchisee_ID[1]', 'uniqueidentifier') AS Franchisee_ID,
S.value('Recharge_Credit[1]', 'int') AS Recharge_Credit,
S.value('Recharge_Amount[1]', 'money') AS Recharge_Amount
FROM @xml.nodes('/Root/data') AS T(S);

2:SQl语句简单的 try catch 的统一格式:如下简单的Sql

  string sql = @"BEGIN
SET @insertStateCode = 0;
IF NOT EXISTS
(
SELECT TOP 1
*
FROM tbCRM_Franchisee_Credit_History
WHERE Seq =@rechangeID
)
BEGIN TRY
BEGIN TRAN mytran;
INSERT INTO tbCRM_Franchisee_Credit_History
(
[Seq],
[Franchisee_ID],
[Tran_Code],
[Tran_By],
[Tran_Date],
[Credit],
[Amount],
[Remark]
)
SELECT RM.Recharge_ID,
RM.Franchisee_ID,
5,
RM.Create_By,
GETDATE(),
RM.Recharge_Credit,
RM.Recharge_Amount,
RM.Remark
FROM tbCRM_Franchisee_Recharge_Master RM
WHERE RM.Recharge_ID = @rechangeID;
UPDATE tbCRM_Franchisee_Recharge_Master
SET Approve_By = 1
WHERE Recharge_ID =@rechangeID;
SELECT @insertStateCode =200;
COMMIT TRAN mytran;
END TRY
BEGIN CATCH
SELECT @insertStateCode = 500;
ROLLBACK TRAN mytran;
END CATCH;
END;"; 其实就是简单如下:
BEGIN TRY
BEGIN TRAN mytran;
END TRY
BEGIN CATCH
SELECT @insertStateCode = 500;
ROLLBACK TRAN mytran;
END CATCH;

SqlServer简单的操作XML以及SQl的 try catch等统一格式的更多相关文章

  1. 浅析SqlServer简单参数化模式下对sql语句自动参数化处理以及执行计划重用

    我们知道,SqlServer执行sql语句的时候,有一步是对sql进行编译以生成执行计划, 在生成执行计划之前会去缓存中查找执行计划 如果执行计划缓存中有对应的执行计划缓存,那么SqlServer就会 ...

  2. sql server 操作xml例子

    sql server 操作xml例子 /* sql xml 入门: --by jinjazz --http://blog.csdn.net/jinjazz 1.xml: 能认识元素.属性和值 2.xp ...

  3. sqlserver 操作xml

    1.xml.exist    输入为XQuery表达式,返回0,1或是Null.0表示不存在,1表示存在,Null表示输入为空 2.xml.value    输入为XQuery表达式,返回一个SQL ...

  4. SQL Server 操作XML数据

    .xml.exist 输入为XQuery表达式,返回0,1或是Null.0表示不存在,1表示存在,Null表示输入为空 .xml.value 输入为XQuery表达式,返回一个SQL Server标量 ...

  5. salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)

    salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesforce中的数据库使用的是Force.com 平台的数据库,数据表一行数据可以理解成一个sObject变量 ...

  6. C#操作xml SelectNodes,SelectSingleNode总是返回NULL 与 xPath 介绍

    一. SelectNodes,SelectSingleNode总是返回NULL 下面以一个简单的xml为例: <?xml version="1.0"?> <mes ...

  7. 黄聪:C#操作xml SelectNodes,SelectSingleNode通过 xPath 定位class包含Contains的DIV

    一. SelectNodes,SelectSingleNode总是返回NULL 下面以一个简单的xml为例: <?xml version="1.0"?> <mes ...

  8. ado.net的简单数据库操作(一)

    摘要:接下来的几篇博客将要讲到如何使用ado.net实现简单的数据库操作,包括增删改等内容.首先会介绍基础的数据库操作,然后以一个实例来进行讲解,这个实例会把一个数据表读取到winform上,然后在w ...

  9. WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)

    WebAPI调用笔记   前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...

随机推荐

  1. STM32芯片命名规则

  2. 0.Jenkins 介绍

    一.持续集成的概念 continuous  intergaration  (简称CI),持续集成. 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味 ...

  3. 201871010132-张潇潇-《面向对象程序设计(java)》第七周总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  4. Java8——Lambda表达式

    /* * 一.Lambda 表达式的基础语法:Java8中引入了一个新的操作符 "->" 该操作符称为箭头操作符或 Lambda 操作符 * 箭头操作符将 Lambda 表达 ...

  5. HTTPS各版本安全策略HTTPS1_1_TLS1_0、HTTPS2_TLS1_0、HTTPS2_TLS1_2

    来自阿里云 https://help.aliyun.com/document_detail/115169.html HTTPS安全策略 更新时间:2019-04-26 14:49:12      分组 ...

  6. USACO Pearl Pairing

    洛谷 P2902 [USACO08MAR]珍珠配对Pearl Pairing https://www.luogu.org/problem/P2902 JDOJ 2577: USACO 2008 Mar ...

  7. yum源加速,替换为阿里云镜像

    问题 使用yum命令安装mysql时,发现下载速度很慢,于是决定换成阿里的yum源 解决方法 参考自:https://www.jianshu.com/p/b7cd2f9fb8b7 首先备份一下原先的y ...

  8. 求数组前K个大的数

    我们举例,假若从10000万个数里选出前100个最大的数据. 首先我们先分析:既然要选出前100个最大的数据,我们就建立一个大小为100的堆(建堆时就按找最大堆的规则建立,即每一个根节点都大于它的子女 ...

  9. CSP2019 Emiya 家今天的饭 题解

    这题在考场上只会O(n^3 m),拿了84分.. 先讲84分,考虑容斥,用总方案减去不合法方案,也就是枚举每一种食材,求用它做超过\(\lfloor \frac{k}{2} \rfloor\) 道菜的 ...

  10. [LeetCode] 264. Ugly Number II 丑陋数之二

    Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors ...