sqlserver函数+过程,解析字符串信息作为字段,并动态更新数据表

ZKTeco考勤机MDB数据库解析与C#操作指南:从字段含义到复杂查询 本文详细解析了ZKTeco考勤机MDB数据库的结构与字段含义,提供了完整的C#操作指南。从基础连接配置到复杂查询实现,涵盖多表关联、数据分析、性能优化等关键技术点,帮助开发者直接操作考勤数据,实现高效的人力资源管理系统集成。 阅读详情

 字符串示例: user_oid=$124;A1=1;A2=2;branch_no=1400; 

/*

创建字段处理函数

*/

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS OFF

GO

CREATE FUNCTION F_NODE_21(@val varchar(4000))

RETURNS @ctb TABLE([name] varchar(50),[value] varchar(50))

AS

BEGIN

       declare  @tmpVal  varchar(2000)

       declare  @name  varchar(50)

       declare  @value  varchar(50)

 

       while  charindex(';',@val)>0

      begin  

                 set @val = substring(@val,CHARINDEX(';', @val)+1,2000)--去掉已经计算过的节点

              set @tmpVal = substring(@val,0,CHARINDEX(';', @val)) --得到单个节点的数量 A1=X

              set @name=substring(@tmpVal,0,CHARINDEX('=', @tmpVal))

              set @value=substring(@tmpVal,CHARINDEX('=', @tmpVal)+1,10)

              if len(@name)>0   and  len(@value)>0

                begin

                     insert   @ctb

                      SELECT   @name as name,@value as value

               end

      end  

       RETURN

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

/*

创建插入节点表的存储过程

*/

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

 

CREATE procedure sp_insert_node_21

@content   varchar(4000)

as

declare  @num  int

declare  @val  varchar(4000)

declare  @tmpVal  varchar(4000)

declare  @user_oid varchar(200)

declare  @sqlStr  varchar(4000)

      

if @content <> ''

set @val=@content

set @tmpVal = substring(@val,0,CHARINDEX(';', @val)) --得到单个节点的数量 A1=X

set @user_oid=substring(@tmpVal,CHARINDEX('=', @tmpVal)+1,len(@tmpVal))

 

declare  @map  varchar(2000)

declare  @nameStr  varchar(2000)

declare  @valueStr  varchar(2000)

declare  @name varchar(200)

declare  @value varchar(200)

set @map='';

set @nameStr='';

set @valueStr='';

DECLARE   CustomCursor   Cursor   For   (Select   name,value   From   cc_dbo.F_NODE_21(@content))

OPEN         CustomCursor

       FETCH   NEXT   FROM   CustomCursor   INTO   @name,@value  ;

        WHILE   @@FETCH_STATUS   =   0

        BEGIN  

              if(@name='user_oid' or @name='branch_no' or @name='operate_type')

                     begin

                            set @map=@map+@name+'='''+@value+''',';

                            set @nameStr=@nameStr+@name+',';

                            set @valueStr=@valueStr+''''+@value+''',';

                     end

              else

                       begin

                            set @map=@map+@name+'='+@value+',';

                            set @nameStr=@nameStr+@name+',';

                            set @valueStr=@valueStr+@value+',';

                     end

                FETCH   NEXT   FROM   CustomCursor   INTO   @name,@value   ;

        END;

CLOSE   CustomCursor

DEALLOCATE   CustomCursor

 

if @map is not null

set @map=SubString(@map,0,len(@map))

if @nameStr is not null

set @nameStr=SubString(@nameStr,0,len(@nameStr))

if @valueStr is not null

set @valueStr=SubString(@valueStr,0,len(@valueStr))

      

begin

 select @num = (select count(1) from node_info_test where user_oid=@user_oid )

 set @sqlStr='';

 if @num > 0

  begin

      set @sqlStr='update node_info_test set '+ @map +' where user_oid='''+@user_oid+'''';

   end

 else --新插入一条

  begin

      set @sqlStr='insert into node_info_test(count_date,user_oid,'+@nameStr+') values (CONVERT(varchar,  getDate(), 20),'''+@user_oid+''','+@valueStr+')'

  end

end

 

execute(@sqlStr)

 

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

PHP大马技术解析:从短代码到模块化后门的攻防演进 在Web安全领域,后门脚本是攻击者维持服务器控制权的关键工具。其技术原理通常基于脚本语言的动态执行能力,通过特定函数调用系统命令或操作文件系统。从技术价值看,这类工具实现了权限维持、数据窃取和内网渗透,是渗透测试中权限提升的重要环节。应用场景广泛,包括但不限于网站入侵、服务器控制、数据窃取和横向移动。本文聚焦PHP大马,剖析其从一句话木马到模块化后门的演进路径,深入讲解其核心架构、隐蔽技术及免杀手段,涵盖文件管理、命令执行、数据库操作等模块,探讨如何通过静态分析与动态调试进行样本分析。针对当前攻防态势,文 阅读详情

相关推荐

全网最全的AItium Designer 16下载资源与安装步骤

Altium Designer 除了全面继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。...

WQ的博客 1万+

SQLserver 基本函数及连表查询

目录 一,字符函数 1,字符长度 LEN ('字符')注意和字节长度的区别 2,全大写UPPER('要全大写的字符') 3,全小写 LOWER('要全小写的字符') 4,取左/右 边的字符 LEFT RIGHT('要截取的字符',截取个数) 5,去除出左/右边的空格 LTRIM RTRIM('字符') 6,替换REPLACE('字符串','需要替换的值','替换后的值') 7,截取SUBSTRING('字符','从第几位开始','到第几位结束') 8,找指定字符 CHARINDEX..

小宝的宝呢的博客 5270

UNet改进(54):当医学图像分割遇上频域学习与自监督

本文提出了一种改进U-Net的方法,通过频域增强模块和代理任务模块提升医学图像分割性能。频域增强模块在傅里叶空间对特征图进行可学习的频率调制,重点增强高频细节特征;代理任务模块通过图像重建约束编码器保留关键信息。两个模块协同工作,在仅增加5%参数量的情况下,形成空间域、频域和重建约束三条互补的信息路径。该方法特别适用于需要精细边缘分割的医学图像任务,预期能提升5%-10%的边缘分割精度,在小样本场景效果更显著。部署可移除代理任务模块,不影响推理效率。未来可探索空间自适应频域调制和更丰富的代理任务设计。

2501_91516851的博客 179

SqlServer中用自定义函数返回动态表内容

说明:在SupplyPlan表中,存储着每一个RequestQty及其对应的开始终止日期段;因为我在以后处理中要判断当前天属于哪一条RequestQty的日期区间进行处理,所以后台数据库只能设计成这种存储形式;但是在页面的显示候,需要动态的根据每一个SupplyPlanNo生成对应的多条日期区段及其数量显示,所以采用自定义函数形式返回处理以后的动态记录集!返回的字段@AllRequestQty

tianlianchao1982的专栏 1441

sqlserver动态实现表数据行转列

–测试数据 if not object_id(N’Tempdb…#T’) is null drop table #T Go Create table #T([字段1] nvarchar(21),[字段2] int) Insert #T select N’A’,1 union all select N’A’,12 union all select N’B’,2 union all select N’...

qq_39007465的博客 549

SQL SERVER动态列名

在ms sql server实现动态呈现列的方法很多。下面Insus.NET解决也算是另外一种参考。 如: 准备实现功能的数据: CREATE TABLE [dbo].[Timing] ([When] NVARCHAR(10) NOT NULL PRIMARY KEY) INSERT INTO [dbo].[Timing] VALUES (N'周五...

weixin_30652271的博客 1696

ASP.NET SQLServer 行转列,不固定列,动态列 的实现

前言刚开始工作就成了被温水煮的青蛙的话,那该有多难吃啊。所以要保持冷静的头脑,好好思考自己该做的不该做的事,好好的提升自己的能力,给自己加点料。嗯,这样就算真被煮熟了,也会可口很多吧。问题背景这个问题是前面工作中遇到的,经过一番努力最终解决了。在这里把问题以及解决思路总结一下。问题描述sql server 数据库里有两张表,主表和明细表;最终需要在前端页面显示表格,要求是以主表为基础的、将明细表的数

wf824284257的博客 5123

数据表列值转换为逗号分隔字符串

在开发SQL Server语序中,可能需要这样一个要求,把表中某一列的所有值转换为使用逗号分隔的字符串去呈现出来。 举个例子: IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL BEGIN DROP TABLE #tempTable END CREATE TABLE #tempTable ([ID] INT NOT N...

weixin_30314813的博客 466

c#&数据库: 9.删除和添加新字段/数据更新

首先利用SqlConnection对象连接学生数据库,然后通过SqlCommand对象执行向学生信息表中增加性别字段的SQL语句,接着通过SqlDataAdapter对象查询修改后的学生表记录。此所有记录的性别字段都为空,先将查询结果填充到数据集,然后通过逐行为数据集表中最后一列赋值,实现为性别字段赋值,接着创建SqlCommandBuilder协调数据集更新与数据库连接,最后调用SqlDataAdapter对象的Update方法实现将数据集的修改更新到数据库中。

m0_51648467的博客 847

记一次KETTLE解决多源数据库全量更新的实操

一、项目背景及业务需求分析 近期在做的项目,自己主要负责服务端接口开发工作。在前期设计过程中,有一个比较棘手的业务流程,用户需要选择数据库中的表挂载到自己的数据资源目录,考虑到后续数据标签等进一步操作,在服务端我们需要把表结构及数据同步复制到本地数据库库中。这个需求在具体实施过程中可以简单描述为多源数据库(目前只限定Oracle、SqlServer、MySQL)的表结构同步及数据的本地化。 考...

a609141483的专栏 2322

mysql database alias_AliasDB:简单统一灵活的数据库访问库(支持MSSQL/MySQL/SQLite/Oracle/ODBC/OleDb)适用于中小型系统...

数据库访问各种规模的应用程序不可避免的操作,.NET对提供了简单方便统一的数据库访问类,且通过Enterprise Lib提供了更为顶层的数据库访问库。在我的人个工作中,现在用得最多的就是通过“动码代码生成器”对一次性生成数据库访问接口(DAL),数据工厂(DBFactory)和模型实体(Model),确实带来了许多方便。但是使用这种结构的数据库访问层有一个有很有局限性,那就是当你数据库结构改变...

weixin_39585691的博客 292

SQLServer → 09:索引

一、索引概念 用途 我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法。 概念 索引是一个单独的,存储在磁盘上的数据结构,它们包含则对数据表里所有记录的引用指针,使用索引用于快速找出在某个或多个列中有某一特定值的行,对相关列使用索引是降低查询操作间的最佳途径。索引包含由表或视图中的一列或多列生成的键。 ...

diaowenchan1577的博客 174

替换SQL Server数据库中所有表的所有字段的某些内容

替换SQL Server数据库中所有表的所有字段的某些内容

mxy906975387的专栏 1243

SQLServer 导数据语句

Select 'Insert Into T_Functions (SysCode,FunCode,FunRight,ParentCode,FunIndex,FunFile,FunType,PicturePath,Remark) Values (', ''''+ SysCode+''',',''''+FunCode +''',',''''+FunCode +''',',''''+FunName ...

weixin_34081595的博客 109

CodeSmith基础(二)

本文将介绍CodeSmith与数据库进行交互生成相应的存储过程,本例使用的数据库为SQL Server 2000。         在与数据库进行交互,我们使用到了一个CodeSmith自带的组件SchemaExplorer,利用这个组件我们可以访问数据库的数据表、存储过程、视图等,可以得到相应的数据类型、标识列、列的(字段)名称等信息。         下面这个例子是教我们如何生成一个存

204

SQL Server全局搜索:在整个数据库中查找特定值的高效方法

在数据库管理和开发过程中,我们经常会遇到这样的场景: - 只记得某个数据值,但忘记了它所在的表或列 - 需要在多个表中查找包含特定关键词的记录 - 数据库结构复杂,没有完整的文档说明

Amon的专栏 4004

开源项目:数据库表结构生成文档工具

今天给大家分享我自己编写的数据库表结构文档生成工具,方便大家在实际开发当中,可以很方便导出业务系统的表结构,也可以作为项目验收文档中数据库设计文档使用。这样可以大大减少编写数据库表结构文档的间,有需要的朋友欢迎下载或者沟通交流!二、技术框架编程语言:C# ( Net Framework4.5.5)数据库技术框架:Dapper导出Word文档:NPOI访问方式:WinForm窗体应用程序,Windows操作系统可以直接运行三、功能介绍。

IT技术分享社区 4274

[ASP.NET教程] AliasDB:简单统一灵活的数据库访问库(支持MSSQL/MySQL/SQLite/Oracle/ODBC/OleDb)适用于中小型系统

数据库访问各种规模的应用程序不可避免的操作,.NET对提供了简单方便统一的数据库访问类,且通过Enterprise Lib提供了更为顶层的数据库访问库。http://www.kmnk03.com/hxpfk/bptx/349.html在我的人个工作中,现在用得最多的就是通过“动码代码生成器”对一次性生成数据库访问接口(DAL),数据工厂(DBFactory)和模型实体(Model),确实带来了许

慕斯筱婕 463

[MS SQL]实用SQL查询语句集锦

1.SQL Server中用Trigger自动记录最后输入的间和用户名 USE [TestDB] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO ALTER TRIGGER [dbo].[TestTable_U] ON [dbo].[TestTable] FOR UPDATE

yaer123的专栏 639

ASP.NET从入门到精通第5版TM.rar

ASP.NET是microsoft公司推出的新一代经历动态web应用程序的开发平台,是目前主流的网络编程工具之一

上一篇: 导入xls或者cvs数据并处理重复数据+关系表数据
下一篇: oracle函数+过程,解析字符串信息作为字段,并动态更新数据表
daoledapp
博客等级 码龄19年 2粉丝 7原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值