SQL Server 的 CLR 存储过程,用.NET 写数据库逻辑的利器,DataProcessingUtility.zip
这个小工具还挺实用的,尤其是你想搞点高级玩法时。它主要讲怎么通过 CLR 存储过程去从 SSIS 包里查文本数据,说白了就是用 C#来帮你读包里的配置、找表名字段啥的,省得你手工一个个翻。
SQL Server CLR 集成这个功能本身就蛮灵活的,能用熟了效率能提高不少。用.NET 写逻辑,类多、能力强,干活确实顺手。像你写个方法标个[SqlProcedure]
,扔进 SQL 里就能直接当存储过程用,还能调.NET 里的库,解析文本、用正则啥的都方便。
配合 SSIS 包一起用更有意思。比如你有个 CSV 数据源,搞个数据流任务从里头抽数据,这时候 CLR 过程可以直接去读包的 XML 配置,里面到底用到哪些字段。做数据追踪、数据血缘挺合适。
部署上嘛,也不复杂。编译成 DLL 后用CREATE ASSEMBLY
导进去,再用CREATE PROCEDURE
建立存储过程就行。安全方面,注意别开太多权限,尤其别随便给UNSAFE
。
包里还有个DataProcessingUtility.sql
,直接跑一下就能测试怎么查 SSIS 包里的信息。你可以用它看看哪些表、字段参与了 ETL 流程,适合做包的自动工具。
如果你平时在折腾 SSIS、又经常需要搞点自定义,这个工具可以省不少事。熟练之后,写 CLR 过程配合 ETL 搞数据、自动化检测,都挺香的。