sql >> データベース >  >> RDS >> Sqlserver

SQL Server CLR :データベース プロジェクトの CLR SQL ストアド プロシージャで WCF サービスを呼び出す方法

    私は多くの検索の後にこれを見つけ、VS 2014 でこれに非常に多くの時間を費やしました

    <オール>
  1. データベース プロジェクトの作成 「CLR_Test」と呼ばれる
  2. ライブラリを作成 WCF クライアント「CLR_Service_Client」の場合
  3. <リ>

    サービス参照を追加 wcf サービスの "CLR_Test" への参照を追加し、"CLR_Service_Client" の参照を "CLR_Test" に追加します
    4.DB オプションを変更して、以下のコードで安全でないアセンブリを実行できるようにする必要があります

    ALTER DATABASE SaleAutomation SET TRUSTWORTHY ONRECONFIGURE

    <リ>

    "CLR_Test" プロジェクトのプロパティ SQLCLR で タブ セット 権限レベル 安全でないに (別の方法として、プロジェクトを公開した後にそのレベルを SQL サーバー管理から変更する方法と、公開のスクリプトに権限レベルを追加してそれぞれを使用できるようにする方法がありますが、
    コード>プロジェクト プロパティ "CLR_Test" プロジェクトのみが自動的に Unsafe を作成します "CLR_Service_Client" Unsafe を設定するには、他の方法を使用する必要があります )

    6.このスクリプトを実行して Sqlserver を追加し、wcf サービスを実行できるようにします

    CREATE ASSEMBLY 
    SMDiagnostics from
    'C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\SMDiagnostics.dll'
    with permission_set = UNSAFE
    GO
    
    CREATE ASSEMBLY 
    [System.Web] from
    'C:\Windows\Microsoft.NET\Framework64\v2.0.50727\System.Web.dll'
    with permission_set = UNSAFE
    GO
    
    CREATE ASSEMBLY 
    [System.Messaging] from
    'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Messaging.dll'
    with permission_set = UNSAFE
     GO
    
    CREATE ASSEMBLY  
    [System.IdentityModel] from
    'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.0\System.IdentityModel.dll'
    with permission_set = UNSAFE
    GO
    
    CREATE ASSEMBLY  
    [System.IdentityModel.Selectors] from
    'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.0\System.IdentityModel.Selectors.dll'
    with permission_set = UNSAFE
    GO
    
    CREATE ASSEMBLY -- this will add service modal
    [Microsoft.Transactions.Bridge] from
    'C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\Microsoft.Transactions.Bridge.dll'
    with permission_set = UNSAFE
    GO
    
    CREATE ASSEMBLY -- this will add service modal
    [System.Runtime.Serialization] from
    'C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\System.Runtime.Serialization.dll'
    with permission_set = UNSAFE
    GO
    CREATE ASSEMBLY -- this will add service modal
    [System.ServiceModel] from
    'C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\System.ServiceModel.dll'
    with permission_set = UNSAFE
    GO
    
    1. プロジェクトを公開し、ストアド プロシージャを実行して楽しんでください。


    1. Laravel:1つのクエリだけで同じIDを持つ複数のテーブルから行を削除するにはどうすればよいですか?

    2. SQLクエリを高速化する方法

    3. Oracle での DateDiff() の使用

    4. 引数2の無効なJSONテキスト-MySQL5.7.8のjson_contains