星空网 > 软件开发 > 数据库

返回标量CLR自定义函数

昨天有学习了返回表自定义函数《CLR Table-Valued函数》http://www.cnblogs.com/insus/p/4378354.html。今天学习另一个,实现返回标量(Scalar-valued) function。

 
这个标量函数获取分类全名。

返回标量CLR自定义函数返回标量CLR自定义函数
SELECT [CategoryName] + '--' + [KindName] + '--' + [FruitName] FROM [dbo].Tvf_Fruit() WHERE [Fruit_nbr] = @Fruit_nbr

View Code


想把这句写成一个标量函数public static SqlString Tvf_GetFullName(SqlByte fruit_nbr),编写clr函数,应当使用static关键词。参考数据类型,使用SQL CLR TYPE。
返回标量CLR自定义函数

可复制代码:

返回标量CLR自定义函数返回标量CLR自定义函数
 [SqlFunction(DataAccess = DataAccessKind.Read)]  public static SqlString Tvf_GetFullName(SqlByte fruit_nbr)  {    SqlConnection connection = new SqlConnection("Context connection=true");    connection.Open();    SqlCommand command = new SqlCommand();    command.Connection = connection;    command.CommandText = "SELECT [CategoryName] + '--' + [KindName] + '--' + [FruitName] FROM [dbo].Tvf_Fruit() WHERE [Fruit_nbr] = @Fruit_nbr";    SqlParameter param = new SqlParameter("@Fruit_nbr", SqlDbType.TinyInt);    param.Value = fruit_nbr;    command.Parameters.Add(param);    string rtn = Convert.ToString(command.ExecuteScalar());    connection.Close();    return new SqlString(rtn);  }

View Code


编译为dll。然后部署至SQL,可执行下面代码,也可以参考前几篇的手动在Microsoft Server.aspx' >SQL Server Management Stuido下进行。更详细《简单创建与布署CLR存储过程》http://www.cnblogs.com/insus/p/4371762.html:
返回标量CLR自定义函数


可复制代码:

返回标量CLR自定义函数返回标量CLR自定义函数
IF EXISTS (SELECT * FROM sys.objects WHERE name = 'Tvf_GetFullName')  DROP FUNCTION Tvf_GetFullName;GOIF EXISTS (SELECT * FROM sys.assemblies WHERE name = 'FruitClr')  DROP ASSEMBLY FruitClr;GOCREATE ASSEMBLY FruitClrFROM 'E:\FruitClr.dll' WITH PERMISSION_SET = SAFE;GOCREATE FUNCTION Tvf_Fruit()RETURNS TABLE (  Fruit_nbr TINYINT,  FruitCategory_nbr TINYINT,  CategoryName NVARCHAR(30),  FruitKind_nbr TINYINT,  KindName NVARCHAR(30),  FruitName NVARCHAR(30))ASEXTERNAL NAME [FruitClr].UserDefinedFunctions.Tvf_Fruit;GOCREATE FUNCTION Tvf_GetFullName(@Fruit_nbr tinyint) RETURNS NVARCHAR(MAX) AS EXTERNAL NAME [FruitClr].UserDefinedFunctions.Tvf_GetFullName; GO

View Code


执行结果:
返回标量CLR自定义函数


下面可对比一下普通的SQL语句与Clr写好的函数效率比较:
返回标量CLR自定义函数

 




原标题:返回标量CLR自定义函数

关键词:函数

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

跨境电商的物流方式——邮政小包:https://www.ikjzd.com/articles/3980
美亚关键词改版!产品被自动提价!8月危机来临:https://www.ikjzd.com/articles/3986
亚马逊如何选品? 六个“所以”帮助你:https://www.ikjzd.com/articles/399
备战Q4,布局选品、打好关键词广告这些准备再不做就晚了:https://www.ikjzd.com/articles/3993
2018下半年亚马逊品类趋势!:https://www.ikjzd.com/articles/3996
掌握八个要点,轻松提升亚马逊转化率!:https://www.ikjzd.com/articles/3997
皇帝的皇宫=:https://www.vstour.cn/a/363188.html
海南岛琼海市旅游景点 琼海市的旅游景点:https://www.vstour.cn/a/363189.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流