问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql怎么建表内值函数

发布网友 发布时间:2022-04-30 08:29

我来回答

2个回答

懂视网 时间:2022-04-30 12:51

1. 创建项目:

技术分享

技术分享

2. 添加函数代码:

using System;
using System.Data.Sql;
using Microsoft.SqlServer.Server;
using System.Collections;
using System.Data.SqlTypes;
using System.Diagnostics;

public class TabularEventLog
{
 [SqlFunction(TableDefinition = 
@"logTime datetime
,Message nvarchar(4000)
,Category nvarchar(4000)
,InstanceId bigint",
 Name = "ReadEventLog", FillRowMethodName = "FillRow")]
 public static IEnumerable InitMethod(String logname)
 {
 return new EventLog(logname, Environment.MachineName).Entries;
 }

 public static void FillRow(Object obj, out SqlDateTime timeWritten,
 out SqlChars message, out SqlChars category,
 out long instanceId)
 {
 EventLogEntry eventLogEntry = (EventLogEntry)obj;
 timeWritten = new SqlDateTime(eventLogEntry.TimeWritten);
 message = new SqlChars(eventLogEntry.Message);
 category = new SqlChars(eventLogEntry.Category);
 instanceId = eventLogEntry.InstanceId;
 }
}

3. 脚本:

USE MASTER
GO
sp_configure 'show advanced options',1;
GO
RECONFIGURE;
GO
sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO
--表值函数放在 db_study 库上
USE db_study
GO
--删除函数
IF OBJECT_ID('[dbo].[ReadEventLog]') IS NOT NULL
	DROP FUNCTION [dbo].ReadEventLog
GO
--删除程序集
IF EXISTS(SELECT * FROM SYS.ASSEMBLIES WHERE NAME='tvfEventLog') 
	DROP ASSEMBLY tvfEventLog
GO
--创建程序集, 设置为实际路径, 注意应设置为: UNSAFE
CREATE ASSEMBLY tvfEventLog FROM'D:ProjectStudySimpleSqlServerProject1inDebugSqlServerProject1.dll' WITH PERMISSION_SET = UNSAFE
GO
--创建表值函数
CREATE FUNCTION dbo.ReadEventLog(@logname nvarchar(100))
RETURNS TABLE (
	logTime DATETIME
	,Message nvarchar(4000)
	,Category nvarchar(4000)
	,InstanceId BIGINT
)
AS
	EXTERNAL NAME tvfEventLog.TabularEventLog.InitMethod 
GO
--查询
SELECT TOP 10 T.logTime, T.Message, T.InstanceId
FROM dbo.ReadEventLog(N'Security') as T
ORDER BY logTime DESC


技术分享


参考:http://www.microsoft.com/china/msdn/library/data/sqlserver/bb293147.mspx?mfr=true

此页面做法有问题: https://msdn.microsoft.com/zh-cn/library/ms131103(v=sql.120).aspx


版权声明:本文为博主原创文章,未经博主允许不得转载。

SqlClr:创建一个简单的表值函数

标签:sqlclr

热心网友 时间:2022-04-30 09:59

你说表值函数吗?
有两种形式
1
create function f_t (@xx int)
returns table(id int,c varchar(10)) --这里是写出表结构
as
begin
return xxx ---
end
2
create function f_t(xxxx)
returns table
as
return ( select xxxxx ....)
--- 直接反回
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...的电器到成都,请问一下,那个航空快一些呀,多少/公斤? 前女友和我分手一年之后,出车祸死了,我很高兴,这种心理是不是不... 为什么听到前女友去世的消息,我竟然放声大哭,她很爱我,是我对她腻了... 兰州银行充天然气必须要本行卡吗 从服饰礼仪看中西方文化差异 为什么iqoo11评价那么低? 相机快门线的运用范围 快门线是干什么用的 请问这是什么虫子 还挺硬的 在楼房内 整理箱上面发现的 屋内有木质上... 请问这是什么虫子?家里抓到,2cm左右。坐标北京,昌平,冬季12月,楼房... 商业模式的力量的作者简介 mac os 怎样sanchu 什么公司的顶层设计培训干货多? 时代华商董事长班资本班怎样/靠不靠谱? 时代华商资本总裁班怎样?靠不靠谱? 苹果手机和Mac系统有两个罗马数字10呀? 明德ITD顶层设计怎么样? 时代华商金融PE班怎样?靠不靠谱? 在mac里怎样才能输入罗马等特殊字符? 时代华商金融总裁班怎样?靠不靠谱? mac自带拼音输入法怎么输入罗马数字,Mac 综合与周边 办会议活动时怎么能让签到速度快一点? 创新商业模式属于什么权益 Mac怎么输入罗马数字? 我们公司每周五都有例会,我想找一个可以生成例会的会议管理软件? 资本顶层设计创富实战 郑翔洲是什么人,敢自称经济学家? 郑翔洲是干什么的? 资本与商业模式顶层设计互联网时代如何发现企业高利润区 PDF 电脑为什输入拼音不现字 钉钉上面周报月报为什么现在修改和删除不了,以前是可以的,怎么回事啊? 我明天休假在钉钉里要发周报结果我发了日报怎么办?要改吗?不管的话明天要写吗 MADNESS x Carhartt WIP一拳公开,新番究竟与爱因斯坦有何关系 身高176体重144穿 carhartt夹克M码会不会大了? 美国那个网站买carhartt wip的衣服比较便宜!!! carhartt wip 短款钥匙绳 怎么用好看 请问质量和Carhartt主线工装裤类似的牌子有哪些品牌。 衡水去北京走大广高速在哪里办进京证 大广高速在那办进京证 如何:创建和运行 CLR SQL Server 用户定义的函数 我在网上申办进京证,输入验证码后,显示请求参数不能为空,什么意思_百度问一问 电子进京证申请几十次审核失败怎么回事? 大广高速进京检查站叫什么名字大广高速进京的北检查站叫什么名字? 从大广高速进京在哪里办理进京证呀!是收费站吗 大广高速公路在哪办进京证 大广高速河北固安收费站电话是多少 梦见奶奶家房顶有洞,可以看见蓝天,然后爸爸用什么东西给盖住了。请问这是什么寓意? 梦见我在我妈家房顶上坐着,又上来好多人坐着,有人把房顶踩了窟窿? 梦见家里房顶有个大洞抬头看到蓝天和太阳 led显示屏控制卡测试按钮测试全部正常就是不出字怎么回事