2

CLR ストアド プロシージャの展開を展開スクリプト (現時点では powershell) に含めたいのですが、これを自動的に行う良い方法がわかりません。

Visual Studio で右クリックして展開するのと同じことを行うための優れたコマンド ライン オプションがあると思っていたでしょう。

4

3 に答える 3

1

まあ、PowerShell 自体は、追加のヘルプを提供するものではありません。どのバージョンの SQL かについては触れていないので、少し一般的な話をします。

本当に必要なことは、スクリプト ファイルに CLR ストアド プロシージャに必要な DLL をコピーさせることだけです。PowerShell はマニアックにファイルをコピーできるので、問題はありません。次に、SQL で CREATE ASSEMBLY ステートメントを実行する必要があります。PowerShell はネイティブではこれをサポートできません。SQL 2008 を使用している場合、スクリプトは SQL コマンドレット プロバイダーに Add-PSSnap を追加できます。これにより、SQL クエリを実行できるコマンドレットが提供され、CREATE ステートメントが取得されます。

2008 を持っていない場合は、短い .NET ルーチンを記述して SqlConnection と SqlCommand を作成する必要があります。難しくなく、完全に PowerShell で作成できます。

次に、同じ手法を使用して CREATE PROC ステートメントを実行し、前述のアセンブリを使用してストアド プロシージャを実際に作成します。

ザットヘルプ?残念ながら、これ以上自動化されたものはありません。MSは、この性質の複雑なSQL展開を簡素化するために多くの頭脳を費やしていないと思います.CLRは、アセンブリを利用可能にする必要があるため、少し余分なスパイスを追加します.

于 2008-12-10T00:15:58.300 に答える
1

http://msdn.microsoft.com/en-us/library/ms345099.aspxで説明されている手法を使用して、SSMS から展開スクリプトを生成できます。少なくとも、これにより、大量の CREATE PROCEDURE ステートメントを生成するという面倒な部分に対処できます。

于 2010-08-11T12:51:42.450 に答える
0

SQL Server Publishing Wizard は、CLR ストアド プロシージャをテキストとしてスクリプト化できます。CLR ストアド プロシージャのバイナリ ソースを、ある種の 16 進数でエンコードされたテキストとして変換するようです。

于 2009-01-12T22:26:46.140 に答える