zoukankan      html  css  js  c++  java
  • SQL Server中字符串转化为GUID的标量函数实现

        还是工作中遇到的需求,有时候和外部的系统对接,进行数据的核对功能,外部的系统有时候主键字段列数据类是UNIQUEIDENTIFER(GUID)类型的字符串格式,去除了GUID格式中的分隔符“-”。基于上面的原因,在数据库中可能要将这类的“GUID去格式化的字符串”转化为GUID,便于和本系统的相关联数据进行来核对。
     
    SQL Server中的字符串转化为GUID的T-SQL代码如下:
     1 IF OBJECT_ID(N'dbo.ufn_GUID', 'FN') IS NOT NULL
     2 BEGIN
     3     DROP FUNCTION dbo.ufn_GUID;
     4 END
     5 GO
     6 
     7 --==================================
     8 -- 功能: 字符串转换为GUID
     9 -- 说明: 1、不足32为的字符串则转换为0x0
    10 -- 作者: XXX
    11 -- 创建: XXXX-XX-XX
    12 -- 修改: XXXX-XX-XX XXX XXXXXX
    13 -- 调用: SET @uniGuid = dbo.fn_GUID('31F74CD6EDE94B19BC4C29A8A7791DC7')
    14 --==================================
    15 CREATE FUNCTION dbo.ufn_GUID
    16 (
    17     @chnStr NCHAR(32)        -- 字符串
    18 ) RETURNS UNIQUEIDENTIFIER
    19     --$Encode$--
    20 AS
    21 BEGIN
    22     -- 初始化处理NULL时的变量@chnStr的默认值
    23     SET @chnStr = ISNULL(@chnStr, N'');
    24 
    25     IF LEN(@chnStr) < 32
    26     BEGIN
    27         RETURN 0x0;
    28     END
    29 
    30     RETURN LEFT(@chnStr, 8) + '-' + SUBSTRING(@chnStr, 9 ,4) + '-' + SUBSTRING(@chnStr, 13, 4) + 
    31             '-' + SUBSTRING(@chnStr, 17 ,4) + '-' + SUBSTRING(@chnStr, 21, 12);
    32 END
    33 GO

    演示该标量函数效果的T-SQL代码如下:

    1 SELECT dbo.ufn_GUID('31F74CD6EDE94B19BC4C29A8A7791DC7') AS GuidVule;
    2 GO

    执行后的查询效果如下:

     

  • 相关阅读:
    AJAX以及XMLHttpRequest
    理解Promise对象
    HTTP报文整理
    前端 — URL、URI、URN概念和区别整理,以及URL语法规则
    gulp与webpack的区别
    Sass和less的区别是什么?用哪个好
    Vue3.0 && Vue3.0初体验 一
    Promise入门详解和基本用法
    js对象方法大全
    hash模式和history模式 实现原理及区别
  • 原文地址:https://www.cnblogs.com/dzy863/p/5056546.html
Copyright © 2011-2022 走看看