SQLServer中字符串转化为GUID的标量函数实现

SQLServer中字符串转化为GUID的标量函数实现

2023年7月13日发(作者:)

SQLServer中字符串转化为GUID的标量函数实现 还是⼯作中遇到的需求,有时候和外部的系统对接,进⾏数据的核对功能,外部的系统有时候主键字段列数据类是UNIQUEIDENTIFER(GUID)类型的字符串格式,去除了GUID格式中的分隔符“-”。基于上⾯的原因,在数据库中可能要将这类的“GUID去格式化的字符串”转化为GUID,便于和本系统的相关联数据进⾏来核对。

SQL Server中的字符串转化为GUID的T-SQL代码如下: 1 IF OBJECT_ID(N'_GUID', 'FN') IS NOT NULL 2 BEGIN 3 DROP FUNCTION _GUID; 4 END 5 GO 6

7 --================================== 8 -- 功能: 字符串转换为GUID 9 -- 说明: 1、不⾜32为的字符串则转换为0x010 -- 作者: XXX11 -- 创建: XXXX-XX-XX12 -- 修改: XXXX-XX-XX XXX XXXXXX13 -- 调⽤: SET @uniGuid = _GUID('31F74CD6EDE94B19BC4C29A8A7791DC7')14 --==================================15 CREATE FUNCTION _GUID16 (17 @chnStr NCHAR(32) -- 字符串18 ) RETURNS UNIQUEIDENTIFIER19 --$Encode$--20 AS21 BEGIN22 -- 初始化处理NULL时的变量@chnStr的默认值23 SET @chnStr = ISNULL(@chnStr, N'');24

25 IF LEN(@chnStr) < 3226 BEGIN27 RETURN 0x0;28 END29

30 RETURN LEFT(@chnStr, 8) + '-' + SUBSTRING(@chnStr, 9 ,4) + '-' + SUBSTRING(@chnStr, 13, 4) +

31 '-' + SUBSTRING(@chnStr, 17 ,4) + '-' + SUBSTRING(@chnStr, 21, 12);32 END33 GO

演⽰该标量函数效果的T-SQL代码如下:1 SELECT _GUID('31F74CD6EDE94B19BC4C29A8A7791DC7') AS GuidVule;2 GO执⾏后的查询效果如下:

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689249579a225746.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信