博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库自定义函数
阅读量:4684 次
发布时间:2019-06-09

本文共 2280 字,大约阅读时间需要 7 分钟。

 

这个为通用过滤关键字的函数,若有其他关键字未添加可以参考语法加入。

USE [Db]

GO

/****** Object: UserDefinedFunction [dbo].[f_FilterString] Script Date: 12/09/2013 17:03:45 ******/

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON

GO

CREATE function [dbo].[f_FilterString] --通用函数。过滤关键字

(@SqlString nvarchar(1000))--参数为需要过滤的参数
returns nvarchar(1000)
as
begin
declare @FiString nvarchar(20)
declare @count int

set @FiString='select'
set @count= CHARINDEX(@FiString,@SqlString)

if(@count>0)

begin
set @SqlString=replace(@SqlString,@FiString,'')
end

set @FiString='delete'

set @count= CHARINDEX(@FiString,@SqlString)

if(@count>0)

begin
set @SqlString=replace(@SqlString,@FiString,'')
end

set @FiString='drop'
set @count= CHARINDEX(@FiString,@SqlString)

if(@count>0)

begin
set @SqlString=replace(@SqlString,@FiString,'')
end
set @FiString='truncate'
set @count= CHARINDEX(@FiString,@SqlString)

if(@count>0)

begin
set @SqlString=replace(@SqlString,@FiString,'')
end

set @FiString='--'

set @count= CHARINDEX(@FiString,@SqlString)

if(@count>0)

begin
set @SqlString=replace(@SqlString,@FiString,'')
end

set @FiString='update'
set @count= CHARINDEX(@FiString,@SqlString)

if(@count>0)

begin
set @SqlString=replace(@SqlString,@FiString,'')
end

set @FiString='insert into'

set @count= CHARINDEX(@FiString,@SqlString)

if(@count>0)

begin
set @SqlString=replace(@SqlString,@FiString,'')
end
set @FiString='create'
set @count= CHARINDEX(@FiString,@SqlString)

if(@count>0)

begin
set @SqlString=replace(@SqlString,@FiString,'')
end

set @FiString='alter'

set @count= CHARINDEX(@FiString,@SqlString)

if(@count>0)

begin
set @SqlString=replace(@SqlString,@FiString,'')
end
return @SqlString

end

GO

 

这个为通用分割函数:第一个参数为分割前的字符串,第二个参数为分割字符

USE [Db]

GO
/****** Object: UserDefinedFunction [dbo].[f_splitstr] Script Date: 09/30/2013 21:26:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[f_splitstr](@SourceSql varchar(8000),@StrSeprate varchar(100))
returns @temp table(F1 varchar(100))
as
begin
declare @ch as varchar(100)
set @SourceSql=@SourceSql+@StrSeprate
while(@SourceSql<>'')
begin
set @ch=left(@SourceSql,charindex(@StrSeprate,@SourceSql,1)-1)
insert @temp values(@ch)
set @SourceSql=stuff(@SourceSql,1,charindex(@StrSeprate,@SourceSql,1),'')
end
return
end

转载于:https://www.cnblogs.com/ITHomes/p/3465751.html

你可能感兴趣的文章
解决在vue中,自用mask模态框出来后,下层的元素依旧可以滑动的问题
查看>>
修改node节点名称
查看>>
Java 文件下载
查看>>
图论——读书笔记 (深度优先搜索)
查看>>
PAT(B) 1014 福尔摩斯的约会(Java)
查看>>
PAT甲级题解-1123. Is It a Complete AVL Tree (30)-AVL树+满二叉树
查看>>
不要过早追求通用
查看>>
带ifrmae的弹窗
查看>>
20172310 2017-2018《程序设计与数据结构》(下)第二周学习总结
查看>>
C#中webBrowser加载页面中的不同域的iFrame的源代码的取得
查看>>
iOS/Android 微信及浏览器中唤起本地APP
查看>>
[Usaco2005 nov]Grazing on the Run 边跑边吃草 BZOJ1742
查看>>
flex中dragdrop不响应的原因
查看>>
.Net学习笔记----2015-07-08(基础复习和练习01)
查看>>
1#Two Sum(qsort用法)
查看>>
Spark 各个组件关系
查看>>
Android Studio之could not reserve enough space for object heap
查看>>
pass
查看>>
给自己网站配置 https,http2 ,gzip压缩
查看>>
Linux发展历程
查看>>