当前位置:Gxlcms > 数据库问题 > DBA眼中的CLR

DBA眼中的CLR

时间:2021-07-01 10:21:17 帮助过:27人阅读

OBJECT_NAME(m.object_id) AS db_object ,a.name AS assembly ,m.assembly_class ,m.assembly_method FROM sys.assembly_modules m INNER JOIN sys.assemblies a ON a.assembly_id = m.assembly_id

sys.assembly_references.程序集之間的相互引用依賴關係。
sys.module_assembly_usages將程序集的ID與引用它們的數據庫對象ID,關係起來了。

  1. <code class="language-sql hljs "><span class="hljs-operator"><span class="hljs-keyword">SELECT</span> OBJECT_NAME(object_id) <span class="hljs-keyword">AS</span> db_object
  2. ,a.name <span class="hljs-keyword">AS</span> assembly
  3. <span class="hljs-keyword">FROM</span> sys.module_assembly_usages u
  4. <span class="hljs-keyword">INNER</span> <span class="hljs-keyword">JOIN</span> sys.assemblies a <span class="hljs-keyword">ON</span> a.assembly_id = u.assembly_id</span></code>

移除CLR程序集

VS可以很方便創建和部署CLR程序集到SQL Server中,但並沒有同樣方便的工具去卸載它們。你必須有順序地手動將它們移動。
在移除某程序集之前可以通過查看依賴項先移動那些引用此程序集的T-Sql對象,可以Sp_Depends或在對象資源管理器中右鍵查看。

更好的改變

純T-SQL的數據庫編程時代正在發生變化,CLR正是這一跡象的例子。盡管有人會有點排斥,但正是變化讓DBA生涯變得有趣。CLR真正突破了T-SQL在某些方面的限制。兩種模式的混合編程能力是一個強大的工具,DBA和開發者都應該掌握它們。

原文鏈接

附常用查詢

  1. <code class="language-sql hljs "><span class="hljs-comment">-- Assembly Query </span>
  2. <span class="hljs-operator"><span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> sys.assembly_modules;</span>
  3. <span class="hljs-operator"><span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> sys.assemblies;</span>
  4. <span class="hljs-operator"><span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> sys.assembly_files;</span>
  5. <span class="hljs-comment">-- CLR Object In Database</span>
  6. <span class="hljs-operator"><span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> sys.objects <span class="hljs-keyword">WHERE</span> type_desc <span class="hljs-keyword">LIKE</span> <span class="hljs-string">‘CLR%‘</span>;</span>
  7. <span class="hljs-comment">-- 哪些系统对象引用了CLR程序集</span>
  8. <span class="hljs-operator"><span class="hljs-keyword">SELECT</span> OBJECT_NAME(object_id) <span class="hljs-keyword">AS</span> [Object_Name],b.Name <span class="hljs-keyword">AS</span> Assembly_Name
  9. <span class="hljs-keyword">FROM</span> sys.module_assembly_usages a
  10. <span class="hljs-keyword">INNER</span> <span class="hljs-keyword">JOIN</span> sys.assemblies b <span class="hljs-keyword">ON</span> a.assembly_id = b.assembly_id;</span></code>

DBA眼中的CLR

标签:create   哪些   like   sage   使用   ref   cti   操作   工作   

人气教程排行