sql server 扩展存储过程
C# 代码
using Microsoft.SqlServer.Server;
using System;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks; public partial class UserDefinedFunctions
{
public static SqlString ExampleUDF()
{
return new SqlString("Hello");
}
[SqlFunction(IsDeterministic = true, IsPrecise = true)]
public static bool RegExIsMatch(string pattern, string matchString)
{
Regex reg = new Regex(pattern.TrimEnd(null));
return reg.Match(matchString.TrimEnd(null)).Success;
}
}
SQL SERVER 代码
加载程序集
USE InvestorRelations
CREATE ASSEMBLY ExampleUDF
FROM 'E:\学习\SessionTest\TestKZCCGC\bin\Debug\TestKZCCGC.dll'
创建函数
CREATE FUNCTION ExampleUDFTwo()
RETURNS nvarchar(1000)
AS EXTERNAL NAME ExampleUDF.UserDefinedFunctions.ExampleUDF;
表值函数:
C#代码
using Microsoft.SqlServer.Server;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks; public partial class UserDefinedFunctions
{
[SqlFunction(FillRowMethodName = "FillRow")]
public static IEnumerable DirectoryList(string sRootDir, string sWildCard, bool bIncludeSubDirs)
{
ArrayList aFileArray = new ArrayList();
DirectorySearch(sRootDir, sWildCard, bIncludeSubDirs, aFileArray);
return aFileArray;
}
private static void DirectorySearch(string directory, string sWildCard, bool bIncludeSubDirs, ArrayList aFileArray)
{
GetFiles(directory, sWildCard, aFileArray);
if (bIncludeSubDirs)
{
foreach (string d in Directory.GetDirectories(directory))
{
DirectorySearch(d, sWildCard, bIncludeSubDirs, aFileArray);
}
}
}
private static void GetFiles(string d, string sWildCard, ArrayList aFileArray)
{
foreach (string f in Directory.GetFiles(d, sWildCard))
{
FileInfo fi = new FileInfo(f);
object[] column = new object[2];
column[0] = fi.FullName;
column[1] = fi.LastWriteTime;
aFileArray.Add(column);
}
}
private static void FillRow(object obj, out string filename, out DateTime date)
{
object[] row = (object[])obj;
filename = (string)row[0];
date = (DateTime)row[1];
}
}
SQL SERVER 代码
ALTER DATABASE InvestorRelations
SET TRUSTWORTHY ON; USE InvestorRelations CREATE ASSEMBLY fExampleTVF
FROM 'E:\学习\SessionTest\TestKZCCGC\bin\Debug\TestKZCCGC.dll'
WITH PERMISSION_SET=EXTERNAL_ACCESS CREATE FUNCTION fTVFExample(
@RootDir nvarchar(max),
@WildCard nvarchar(max),
@IncludeSubDirs bit
)
RETURNS TABLE (
FileName nvarchar(max),
LastWriteTime datetime
)
AS EXTERNAL NAME fExampleTVF.UserDefinedFunctions.DirectoryList SELECT FILENAME,LASTWRITETIME
FROM dbo.fTVFExample('E:\学习','*.ppt',0)
sql server 扩展存储过程的更多相关文章
- SQL Server中存储过程 比 直接运行SQL语句慢的原因
问题是存储过程的Parameter sniffing 在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1. 存储过程只在创造时进行编译即可,以后每次执行存储过 ...
- SQL Server 扩展事件(Extented Events)从入门到进阶(1)——从SQL Trace到Extented Events
由于工作需要,决定深入研究SQL Server的扩展事件(Extended Events/xEvents),经过资料搜索,发现国外大牛的系列文章,作为“学习”阶段,我先翻译这系列文章,后续在工作中的心 ...
- SQL Server中存储过程比直接运行SQL语句慢的原因
原文:SQL Server中存储过程比直接运行SQL语句慢的原因 在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1. 存储过程只在创造时进行编译即可,以 ...
- SQL Server 扩展事件(Extented Events)从入门到进阶(4)——扩展事件引擎——基本概念
本文属于 SQL Server 扩展事件(Extented Events)从入门到进阶 系列 在第一二节中,我们创建了一些简单的.类似典型SQL Trace的扩展事件会话.在此过程中,介绍了很多扩展事 ...
- SQL Server 扩展事件(Extented Events)从入门到进阶(3)——通过界面操作Extented Event
本文属于 SQL Server扩展事件(Extended Events)从入门到进阶 系列 对于接纳扩展事件,其中一个最大的障碍就是要对XML和XQuery有一定的了解以便分析数据.我们可以使用T-S ...
- SQL Server 扩展事件(Extented Events)从入门到进阶(2)——在GUI中创建基础扩展事件
本文属于 SQL Server 扩展事件(Extented Events)从入门到进阶 系列 第一篇文章中提到了如何在Profiler中创建跟踪(trace),并以服务器端(server-side)跟 ...
- sql server系统存储过程大全
关键词:sql server系统存储过程,mssql系统存储过程 xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 x ...
- 在sql server中建存储过程,如果需要参数是一个可变集合怎么处理?
在sql server中建存储过程,如果需要参数是一个可变集合的处理 原存储过程,@objectIds 为可变参数,比如 110,98,99 ALTER PROC [dbo].[Proc_totalS ...
- 在易语言中调用MS SQL SERVER数据库存储过程方法总结
Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...
随机推荐
- DedeCms autoindex和itemindex使用介绍
autoindex/itemindex 可以使用 @me+1;实现由指定数字开始,下面为大家详细介绍下具体的两者具体的用法,感兴趣的朋友可以参考下 代码如下: <span style=" ...
- MVC部署出现HTTP 404 错误
asp.net mvc部署出现问题,http错误404.0,报错如下图: 在网上找了好多方法都不行.最后我的解决方案是: 打好这个补丁就行了http://support.microsoft.com/k ...
- HTML5 类型数组TypeArray(一)
1.起源 TypedArray是一种通用的固定长度缓冲区类型,允许读取缓冲区中的二进制数据. 其在WEBGL规范中被引入用于解决Javascript处理二进制数据的问题. TypedArray已经被大 ...
- Razor视图引擎基础语法
在VS2010中新建一个MVC3项目可以看出与以往的MVC2发生了很明显的变化 1.ASP.NET MVC3必要的运行环境为.NET 4.0 (想在3.5用MVC3,没门!) 2.默认MVC3模板项目 ...
- CRT detected that the application wrote to memory after end of heap buffer.
很多人的解释都不一样, 我碰到的问题是,开辟的内存空间小于操作的内存空间.也就是说,我free的内存越界了. 这是我开辟链表结构体内存的代码: PNODE Create() { int len; / ...
- Python文件操作方法
python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有 ...
- oracle解析xml完成版
SELECT * FROM XMLTABLE('$B/DEAL_BASIC/USER_DEAL_INFO' PASSING XMLTYPE('<?xml version="1.0&qu ...
- 【原】push过快的错误 (Pushing the same view controller instance more than once is not supported)
今天在点击按钮push viewController 时,控制台报错: Terminating app due to uncaught exception 'NSInvalidArgumentExce ...
- iOS开发常用的第三方框架
1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是G ...
- C#使用Expand、Shell32解压Cab、XSN文件
前言: 需要解压InfoPath表单的xsn文件,在项目中以前使用的是Expand命令行解压,都没有出过问题,近段时间项目中突然报错解压失败,通过分析解压操作得出结论: 1.正常正常情况下,expan ...