当前位置: 首页 > news >正文

CLR存储过程

为什么80%的码农都做不了架构师?>>>   hot3.png

C# 代码

namespace SayHello
{

    using Microsoft.SqlServer.Server;

    public class SayHelloClass
    {

        [Microsoft.SqlServer.Server.SqlProcedure]
        public static void SayHello(out string greeting)
        {

            SqlMetaData colInfo = new SqlMetaData("问候", System.Data.SqlDbType.NVarChar, 80);

            SqlDataRecord greetingRecord = new SqlDataRecord(new SqlMetaData[] { colInfo });


            greetingRecord.SetString(0, "你好,这是 CLR 存储过程练习");

            SqlContext.Pipe.Send(greetingRecord);

            greeting = string.Format("现在时间是 {0} -- 达意科技", DateTime.Now.ToString());
        }

    }
}    

建立存储过程

use AIMS;
go

if exists(select * from sys.procedures where [name] = 'SayHello')
drop procedure SayHello;
go

if exists(select * from sys.assemblies where [name] = 'SayHello')
drop assembly SayHello;
go

create assembly SayHello
from 'f:\zp\SayHello.dll';
go

create procedure dbo.SayHello
(
	@Greeting nvarchar(80) output
)
AS EXTERNAL NAME SayHello.[SayHello.SayHelloClass].SayHello;
GO

use aims;
go

exec sp_configure 'clr_enabled','1';
go

reconfigure;
go

使用方法

USE [AIMS]
GO

DECLARE	@return_value int,
		@Greeting nvarchar(80)

EXEC	@return_value = [dbo].[SayHello]
		@Greeting = @Greeting OUTPUT

SELECT	@Greeting as N'Greeting', @return_value as return_value

GO

注意事项

注意SQLServer支持的 .Net Framework 版本,查看方法: Microsoft SQL Server Management Studio -> 关于

转载于:https://my.oschina.net/pp219/blog/679807

相关文章:

  • 经典-输出规律的数字序列
  • 运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析
  • datepicker使用
  • Xargs用法详解(原创)
  • 外部程序调用跨数据库的语句时:该事务管理器已经禁止了它对远程/网络事务的支持...
  • jQuery对象入门级介绍
  • Flexbox-CSS3弹性盒模型flexbox完整版教程
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • EF 增删改查 泛型方法、类
  • MongoDB 是如何鼓励和激励开发者社区的
  • dubbo源码分析系列——dubbo的SPI机制源码分析
  • Elasticsearch数据建模-关联查询
  • Ubuntu/Linux 笔记应用 为知笔记(支持markdown)
  • 使用weave实现跨主机docker容器互联
  • 怎么打开Office 2007 Excel加密文档
  • 【译】JS基础算法脚本:字符串结尾
  • #Java异常处理
  • Angular 响应式表单之下拉框
  • Bytom交易说明(账户管理模式)
  • Django 博客开发教程 16 - 统计文章阅读量
  • Java 网络编程(2):UDP 的使用
  • js中的正则表达式入门
  • pdf文件如何在线转换为jpg图片
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • 从伪并行的 Python 多线程说起
  • 简单实现一个textarea自适应高度
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 使用 QuickBI 搭建酷炫可视化分析
  • 详解NodeJs流之一
  • 小程序开发之路(一)
  • 学习笔记TF060:图像语音结合,看图说话
  • 最简单的无缝轮播
  • 整理一些计算机基础知识!
  • 组复制官方翻译九、Group Replication Technical Details
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (26)4.7 字符函数和字符串函数
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (二)WCF的Binding模型
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (四)模仿学习-完成后台管理页面查询
  • (转)创业家杂志:UCWEB天使第一步
  • .jks文件(JAVA KeyStore)
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET DataGridView数据绑定说明
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .Net接口调试与案例
  • .NET值类型变量“活”在哪?
  • [1] 平面(Plane)图形的生成算法
  • [ARM]ldr 和 adr 伪指令的区别
  • [CF703D]Mishka and Interesting sum/[BZOJ5476]位运算