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. docker数据卷之持久化操作

    docker Docker三大核心组件:(运行起来的镜像就可以称作容器) Docker 镜像--Dcoker images:类比与类 Docker 仓库--Docker registeries: Do ...

  2. vm|vmware workstation 15|14 pro 激活|密钥|序列号|许可证

    VMware Workstation Pro 15 激活许可证 UY758-0RXEQ-M81WP-8ZM7Z-Y3HDA VF750-4MX5Q-488DQ-9WZE9-ZY2D6 UU54R-FV ...

  3. pytest中怎么实现参数化?

    我们在组自动化项目中,肯定会遇到需要数据驱动的地方,在unittest中我们直接采用ddt的方式,但是在pytest中我们不能用ddt来实现,所以我们采用了参数化的方式来实现 那么具体怎么完成这个参数 ...

  4. vue-cli 3 和 vue-cli 2的区别

    分享文章: 浅谈vue-cli 3 和 vue-cli 2的区别 https://blog.csdn.net/weixin_42080056/article/details/81631661 vue- ...

  5. c# 第四节 Net Framework编写应用程序的过程

    本节 1:创建.net应用程序所经历的步骤 2:cli是什么 3:程序集是什么 4:jit编辑器 5:托管代码 1:创建.net应用程序所经历的步骤 2:cli是什么 3:程序集是什么 4:jit编辑 ...

  6. 201871010102-常龙龙《面向对象程序设计(java)》第十七周学习总结

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

  7. 201871010110-李华《面向对象程序设计(java)》第八周学习总结

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

  8. javascript高级实战学习

    学习目标: - 理解面向对象开发思想 - 掌握 JavaScript 面向对象开发相关模式 - 掌握在 JavaScript 中使用正则表达式 - typora-copy-images-to medi ...

  9. Vue项目零碎知识(全局js,css配置,element-UI,bs使用, img动态配置,js数组)

    全局css样式,首先在静态assets中写好文件,然后要在main.js中配置 // 配置全局css样式 // import '@/assets/css/global.css' require('@/ ...

  10. openlayers绘制点,线,圆等

    由于我的业务需求是可以在底图上进行一些操作,比如绘制电子围栏等功能,于是需要使用openlayers中的画笔功能,接下来开始一波操作 还是上一篇的html页面, 直接上代码 <!doctype ...