代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
MSSQL
】
签名函数
作者:
Dezai.CN
/ 发布于
2011/11/22
/
640
<div> <p class="MsoNormal" align="left"><span lang="EN-US">--------------------------------------------------------------------</span> <p class="MsoNormal" align="left"><span lang="EN-US">--</span><span>功能:签名函数</span> <p class="MsoNormal" align="left"><span lang="EN-US">--</span><span>作者:</span> <p class="MsoNormal" align="left"><span lang="EN-US">--</span><span>时间:年月日</span> <p class="MsoNormal" align="left"><span lang="EN-US">--</span><span>使用:</span> <p class="MsoNormal" align="left"><span lang="EN-US">--SELECT dbo.fn_SQLSigTSQL</span> <p class="MsoNormal" align="left"><span lang="EN-US">--<span> </span>(N'SELECT * FROM dbo.T1 WHERE col1 = 3 AND col2 > 78', 4000);</span> <p class="MsoNormal" align="left"><span lang="EN-US">-------------------------------------------------------------------<span> </span></span> <p class="MsoNormal" align="left"> <p class="MsoNormal" align="left"><span lang="EN-US"><span>IF</span><span style="color: rgb(0,0,0)"> </span><span>OBJECT_ID</span><span>(</span><span>'dbo.fn_SQLSigTSQL'</span><span>)</span><span style="color: rgb(0,0,0)"> </span><span>IS</span><span style="color: rgb(0,0,0)"> </span><span>NOT</span><span style="color: rgb(0,0,0)"> </span><span>NULL</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>DROP</span><span style="color: rgb(0,0,0)"> </span><span>FUNCTION</span><span style="color: rgb(0,0,0)"> dbo</span><span>.</span><span style="color: rgb(0,0,0)">fn_SQLSigTSQL</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span style="color: rgb(0,0,0)">GO</span></span> <p class="MsoNormal" align="left"> <p class="MsoNormal" align="left"><span lang="EN-US">CREATE</span><span lang="EN-US"><span style="color: rgb(0,0,0)"> </span><span>FUNCTION</span><span style="color: rgb(0,0,0)"> dbo</span><span>.</span><span style="color: rgb(0,0,0)">fn_SQLSigTSQL</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>(</span><span style="color: rgb(0,0,0)">@p1 </span><span>NTEXT</span><span>,</span><span style="color: rgb(0,0,0)"> @parselength </span><span>INT</span><span style="color: rgb(0,0,0)"> </span><span>=</span><span style="color: rgb(0,0,0)"> 4000</span><span>)</span></span> <p class="MsoNormal" align="left"><span lang="EN-US">RETURNS</span><span lang="EN-US"><span style="color: rgb(0,0,0)"> </span><span>NVARCHAR</span><span>(</span><span style="color: rgb(0,0,0)">4000</span><span>)</span></span> <p class="MsoNormal" align="left"> <p class="MsoNormal" align="left"> <p class="MsoNormal" align="left"><span lang="EN-US">AS</span> <p class="MsoNormal" align="left"><span lang="EN-US">BEGIN</span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>DECLARE</span><span style="color: rgb(0,0,0)"> @pos </span><span>AS</span><span style="color: rgb(0,0,0)"> </span><span>INT</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>DECLARE</span><span style="color: rgb(0,0,0)"> @mode </span><span>AS</span><span style="color: rgb(0,0,0)"> </span><span>CHAR</span><span>(</span><span style="color: rgb(0,0,0)">10</span><span>);</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>DECLARE</span><span style="color: rgb(0,0,0)"> @maxlength </span><span>AS</span><span style="color: rgb(0,0,0)"> </span><span>INT</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>DECLARE</span><span style="color: rgb(0,0,0)"> @p2 </span><span>AS</span><span style="color: rgb(0,0,0)"> </span><span>NCHAR</span><span>(</span><span style="color: rgb(0,0,0)">4000</span><span>);</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>DECLARE</span><span style="color: rgb(0,0,0)"> @currchar </span><span>AS</span><span style="color: rgb(0,0,0)"> </span><span>CHAR</span><span>(</span><span style="color: rgb(0,0,0)">1</span><span>),</span><span style="color: rgb(0,0,0)"> @nextchar </span><span>AS</span><span style="color: rgb(0,0,0)"> </span><span>CHAR</span><span>(</span><span style="color: rgb(0,0,0)">1</span><span>);</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>DECLARE</span><span style="color: rgb(0,0,0)"> @p2len </span><span>AS</span><span style="color: rgb(0,0,0)"> </span><span>INT</span><span>;</span></span> <p class="MsoNormal" align="left"> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @maxlength </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>LEN</span><span>(</span><span>RTRIM</span><span>(</span><span>SUBSTRING</span><span>(</span><span style="color: rgb(0,0,0)">@p1</span><span>,</span><span style="color: rgb(0,0,0)">1</span><span>,</span><span style="color: rgb(0,0,0)">4000</span><span>)));</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @maxlength </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>CASE</span><span style="color: rgb(0,0,0)"> </span><span>WHEN</span><span style="color: rgb(0,0,0)"> @maxlength </span><span>></span><span style="color: rgb(0,0,0)"> @parselength</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>THEN</span><span style="color: rgb(0,0,0)"> @parselength </span><span>ELSE</span><span style="color: rgb(0,0,0)"> @maxlength </span><span>END</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @pos </span><span>=</span><span style="color: rgb(0,0,0)"> 1</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @p2 </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>''</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @p2len </span><span>=</span><span style="color: rgb(0,0,0)"> 0</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @currchar </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>''</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>set</span><span style="color: rgb(0,0,0)"> @nextchar </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>''</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @mode </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>'command'</span><span>;</span></span> <p class="MsoNormal" align="left"> <p class="MsoNormal" align="left"><span lang="EN-US"><span>WHILE</span><span style="color: rgb(0,0,0)"> </span><span>(</span><span style="color: rgb(0,0,0)">@pos </span><span><=</span><span style="color: rgb(0,0,0)"> @maxlength</span><span>)</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>BEGIN</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @currchar </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>SUBSTRING</span><span>(</span><span style="color: rgb(0,0,0)">@p1</span><span>,</span><span style="color: rgb(0,0,0)">@pos</span><span>,</span><span style="color: rgb(0,0,0)">1</span><span>);</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @nextchar </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>SUBSTRING</span><span>(</span><span style="color: rgb(0,0,0)">@p1</span><span>,</span><span style="color: rgb(0,0,0)">@pos</span><span>+</span><span style="color: rgb(0,0,0)">1</span><span>,</span><span style="color: rgb(0,0,0)">1</span><span>);</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>IF</span><span style="color: rgb(0,0,0)"> @mode </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>'command'</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>BEGIN</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @p2 </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>LEFT(</span><span style="color: rgb(0,0,0)">@p2</span><span>,</span><span style="color: rgb(0,0,0)">@p2len</span><span>)</span><span style="color: rgb(0,0,0)"> </span><span>+</span><span style="color: rgb(0,0,0)"> @currchar</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @p2len </span><span>=</span><span style="color: rgb(0,0,0)"> @p2len </span><span>+</span><span style="color: rgb(0,0,0)"> 1 </span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>IF</span><span style="color: rgb(0,0,0)"> @currchar </span><span>IN</span><span style="color: rgb(0,0,0)"> </span><span>(</span><span>','</span><span>,</span><span>'('</span><span>,</span><span>' '</span><span>,</span><span>'='</span><span>,</span><span>'<'</span><span>,</span><span>'>'</span><span>,</span><span>'!'</span><span>)</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>AND</span><span style="color: rgb(0,0,0)"> @nextchar </span><span>BETWEEN</span><span style="color: rgb(0,0,0)"> </span><span>'0'</span><span style="color: rgb(0,0,0)"> </span><span>AND</span><span style="color: rgb(0,0,0)"> </span><span>'9'</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>BEGIN</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @mode </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>'number'</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @p2 </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>LEFT(</span><span style="color: rgb(0,0,0)">@p2</span><span>,</span><span style="color: rgb(0,0,0)">@p2len</span><span>)</span><span style="color: rgb(0,0,0)"> </span><span>+</span><span style="color: rgb(0,0,0)"> </span><span>'#'</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @p2len </span><span>=</span><span style="color: rgb(0,0,0)"> @p2len </span><span>+</span><span style="color: rgb(0,0,0)"> 1</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>END</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>IF</span><span style="color: rgb(0,0,0)"> @currchar </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>''''</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>BEGIN</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @mode </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>'literal'</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @p2 </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>LEFT(</span><span style="color: rgb(0,0,0)">@p2</span><span>,</span><span style="color: rgb(0,0,0)">@p2len</span><span>)</span><span style="color: rgb(0,0,0)"> </span><span>+</span><span style="color: rgb(0,0,0)"> </span><span>'#'''</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @p2len </span><span>=</span><span style="color: rgb(0,0,0)"> @p2len </span><span>+</span><span style="color: rgb(0,0,0)"> 2</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>END</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>END</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>ELSE</span><span style="color: rgb(0,0,0)"> </span><span>IF</span><span style="color: rgb(0,0,0)"> @mode </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>'number'</span><span style="color: rgb(0,0,0)"> </span><span>AND</span><span style="color: rgb(0,0,0)"> @nextchar </span><span>IN</span><span style="color: rgb(0,0,0)"> </span><span>(</span><span>','</span><span>,</span><span>')'</span><span>,</span><span>' '</span><span>,</span><span>'='</span><span>,</span><span>'<'</span><span>,</span><span>'>'</span><span>,</span><span>'!'</span><span>)</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @mode</span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>'command'</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>ELSE</span><span style="color: rgb(0,0,0)"> </span><span>IF</span><span style="color: rgb(0,0,0)"> @mode </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>'literal'</span><span style="color: rgb(0,0,0)"> </span><span>AND</span><span style="color: rgb(0,0,0)"> @currchar </span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>''''</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @mode</span><span>=</span><span style="color: rgb(0,0,0)"> </span><span>'command'</span><span>;</span></span> <p class="MsoNormal" align="left"> <p class="MsoNormal" align="left"><span lang="EN-US"><span>SET</span><span style="color: rgb(0,0,0)"> @pos </span><span>=</span><span style="color: rgb(0,0,0)"> @pos </span><span>+</span><span style="color: rgb(0,0,0)"> 1</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>END</span></span> <p class="MsoNormal" align="left"><span lang="EN-US"><span>RETURN</span><span style="color: rgb(0,0,0)"> @p2</span><span>;</span></span> <p class="MsoNormal" align="left"><span lang="EN-US">END</span> <p class="MsoNormal" align="left"><span lang="EN-US"><span style="color: rgb(0,0,0)">GO</span></span> </div>
试试其它关键字
签名函数
同语言下
.
SQL查询 多列合并成一行用逗号隔开
.
查看存储过程修改时间,最近执行时间
.
设置手动批量删除数据库相关进程
.
获取某个表中特定字段的所有字符串形式
.
SQL 如何去除重复的字符串
.
怎么去掉一个字段中的重复数据
.
String 去除空格 回车 换行 水平制表符
.
SQL查询和替换含有回车,空格,TAB
.
SQL SERVER 查询每日新增用户数量、次留数量
.
判断两个字符串是否存在相同的内容
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3