<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=SQL_Server%2FT-SQL_Tutorial%2FCLR%2FCLR</id>
		<title>SQL Server/T-SQL Tutorial/CLR/CLR - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=SQL_Server%2FT-SQL_Tutorial%2FCLR%2FCLR"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/CLR/CLR&amp;action=history"/>
		<updated>2026-05-25T02:02:47Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/CLR/CLR&amp;diff=6905&amp;oldid=prev</id>
		<title> в 13:46, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/CLR/CLR&amp;diff=6905&amp;oldid=prev"/>
				<updated>2010-05-26T13:46:16Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:46, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/CLR/CLR&amp;diff=6906&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/CLR/CLR&amp;diff=6906&amp;oldid=prev"/>
				<updated>2010-05-26T10:24:44Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Converting SQL Server to CLR Data Types==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CLR Data Type(s)      SQL Server Data Type(s)&lt;br /&gt;
SqlBytes              varbinary, binary&lt;br /&gt;
SqlBinary             varbinary, binary&lt;br /&gt;
SqlChars              nvarchar, nchar&lt;br /&gt;
SqlString             nvarchar, nchar&lt;br /&gt;
SqlGuid               uniqueidentifier&lt;br /&gt;
SqlBoolean            bit&lt;br /&gt;
SqlByte               tinyint&lt;br /&gt;
SqlInt16              smallint&lt;br /&gt;
SqlInt32              int&lt;br /&gt;
SqlInt64              bigint&lt;br /&gt;
SqlMoney              smallmoney, money&lt;br /&gt;
SqlDecimal            decimal, numeric&lt;br /&gt;
SqlSingle             real&lt;br /&gt;
SqlDouble             float&lt;br /&gt;
SqlDateTime           smalldatetime, datetime&lt;br /&gt;
SqlXml                xml&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Creating a CLR Scalar User-Defined Function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE ASSEMBLY SQLArrayBuilder FROM &amp;quot;C:\SQLArrayBuilder.DLL&amp;quot;&lt;br /&gt;
WITH PERMISSION_SET = SAFE&lt;br /&gt;
GO&lt;br /&gt;
CREATE FUNCTION dbo.CountSalesOrderHeader&lt;br /&gt;
(@ArrayString nvarchar(400), &lt;br /&gt;
 @ArrayDelimiter nchar(1), &lt;br /&gt;
 @ArrayItemSelection smallint)&lt;br /&gt;
RETURNS nvarchar(400)&lt;br /&gt;
AS&lt;br /&gt;
EXTERNAL NAME SQLArrayBuilder.SQLArrayBuilder.ChooseValueFromArray&lt;br /&gt;
GO&lt;br /&gt;
SELECT dbo.CountSalesOrderHeader&lt;br /&gt;
(&amp;quot;B,S&amp;quot;, &amp;quot;,&amp;quot;, 3) Choice&lt;br /&gt;
SELECT dbo.CountSalesOrderHeader&lt;br /&gt;
(&amp;quot;B D&amp;quot;, &amp;quot;,&amp;quot;, 2) Choice&lt;br /&gt;
///////////////////&lt;br /&gt;
Imports System.Data&lt;br /&gt;
Imports System.Data.Sql&lt;br /&gt;
Imports System.Data.SqlTypes&lt;br /&gt;
Imports Microsoft.SqlServer.Server&lt;br /&gt;
Imports System.Text.RegularExpressions&lt;br /&gt;
Public Class SQLArrayBuilder&lt;br /&gt;
    Public Shared Function ChooseValueFromArray(ArrayString as String, ArrayDelimiter as String, ArrayItemSelection as SqlInt16) as SqlString&lt;br /&gt;
    &lt;br /&gt;
    Dim NewArrayString as String() = Regex.Split(ArrayString, ArrayDelimiter)&lt;br /&gt;
    Dim NewArrayItemSelection as SqlInt16=ArrayItemSelection-1&lt;br /&gt;
    Dim ReturnString as SQLString = NewArrayString(NewArrayItemSelection)&lt;br /&gt;
    Return ReturnString&lt;br /&gt;
    &lt;br /&gt;
    End Function&lt;br /&gt;
End Class&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Creating a CLR Trigger==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE dbo.MyAudit&lt;br /&gt;
(MyAuditID int&lt;br /&gt;
NOT NULL IDENTITY(1,1) PRIMARY KEY ,&lt;br /&gt;
LoadDT datetime NOT NULL)&lt;br /&gt;
CREATE ASSEMBLY YourTrigger&lt;br /&gt;
FROM &amp;quot;C:\YourTrigger.dll&amp;quot;&lt;br /&gt;
WITH PERMISSION_SET = EXTERNAL_ACCESS&lt;br /&gt;
GO&lt;br /&gt;
CREATE TRIGGER dbo.trg_i_DWNotify&lt;br /&gt;
ON dbo.MyAudit AFTER INSERT&lt;br /&gt;
AS&lt;br /&gt;
EXTERNAL NAME&lt;br /&gt;
YourTrigger.[YourTrigger.DW_Trigger].ExportFile&lt;br /&gt;
INSERT dbo.MyAudit&lt;br /&gt;
(LoadDT)&lt;br /&gt;
VALUES(GETDATE())&lt;br /&gt;
///////////&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Data&lt;br /&gt;
Imports System.Data.Sql&lt;br /&gt;
Imports System.Data.SqlTypes&lt;br /&gt;
Imports System.Data.SqlClient&lt;br /&gt;
Imports Microsoft.SqlServer.Server&lt;br /&gt;
Imports System.IO&lt;br /&gt;
Public Class DW_Trigger&lt;br /&gt;
    Public Shared Sub ExportFile()&lt;br /&gt;
        Dim DWTrigger As SqlTriggerContext&lt;br /&gt;
        DWTrigger = SqlContext.TriggerContext&lt;br /&gt;
        If (DWTrigger.TriggerAction = TriggerAction.Insert) Then&lt;br /&gt;
            Dim DWsw As StreamWriter = New StreamWriter(&amp;quot;C:\test.txt&amp;quot;)&lt;br /&gt;
            DWsw.WriteLine(Now())&lt;br /&gt;
            DWsw.Close()&lt;br /&gt;
        End If&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Creating the CLR Stored Procedure==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
vbc /t:library /out:C:\ReadFiles.DLL /r:&amp;quot;C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlaccess.dll&amp;quot; C:\ReadFiles.vb&amp;quot;&lt;br /&gt;
Imports System.Data&lt;br /&gt;
Imports System.Data.Sql&lt;br /&gt;
Imports System.Data.SqlTypes&lt;br /&gt;
Imports Microsoft.SqlServer.Server&lt;br /&gt;
Imports System.IO&lt;br /&gt;
Public Class ReadFiles&lt;br /&gt;
    Public Shared Sub Main(ByVal sFile As SqlString)&lt;br /&gt;
        Dim sReader As StreamReader = New StreamReader(sFile)&lt;br /&gt;
        Dim sLine As String&lt;br /&gt;
        Dim sPipe As SqlPipe = SqlContext.Pipe&lt;br /&gt;
        Do&lt;br /&gt;
            sLine = sReader.ReadLine()&lt;br /&gt;
            If Not sLine Is Nothing Then&lt;br /&gt;
                sPipe.Send(sLine)&lt;br /&gt;
            End If&lt;br /&gt;
        Loop Until sLine Is Nothing&lt;br /&gt;
        sReader.Close()&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
////////////////////&lt;br /&gt;
CREATE PROCEDURE dbo.usp_FileReader&lt;br /&gt;
(@FileName nvarchar(1024))&lt;br /&gt;
AS EXTERNAL NAME ReadFiles.ReadFiles.Main&lt;br /&gt;
GO&lt;br /&gt;
EXEC dbo.usp_FileReader&lt;br /&gt;
N&amp;quot;C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG.1&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== --Enabling CLR Support in SQL Server 2005==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
EXEC sp_configure &amp;quot;clr enabled&amp;quot;, 1&lt;br /&gt;
RECONFIGURE WITH OVERRIDE&lt;br /&gt;
GO&lt;br /&gt;
ALTER DATABASE BookStore&lt;br /&gt;
SET TRUSTWORTHY ON&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Loading the Assembly Into SQL Server==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE ASSEMBLY assembly_name&lt;br /&gt;
[ AUTHORIZATION owner_name ]&lt;br /&gt;
FROM { &amp;quot;[\\computer_name\]share_name\[path\]manifest_file_name&amp;quot;&lt;br /&gt;
  | &amp;quot;[local_path\]manifest_file_name&amp;quot;|&lt;br /&gt;
{ varbinary_literal | varbinary_expression }}&lt;br /&gt;
[ WITH PERMISSION_SET = { SAFE | EXTERNAL_ACCESS | UNSAFE } ]&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>