インターネットで見つけた例に従って、MS SQL Server 2008 で CLR ストアド プロシージャを実装する次の C# コードを作成しました。
public class Class1
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void CountStringLength(string inputString)
{
SqlContext.Pipe.Send(inputString.Length.ToString());
}
}
このプロシージャは、文字列をパラメーターとして取り、文字列内の文字数を出力します。
SQL からデータを取得するコードに取り組んできました。データを取得する方法に特別なことはありません。SQL サーバーに接続し、データを選択してから、接続を閉じます。このコードを SQL サーバーのストアド プロシージャまたはトリガー内で実行したいと考えています。
コードを既存の SQL コードとまったく同じように実行できると思います。つまり、SQL サーバーに接続し、データを選択してから、接続を閉じます。ただし、コードが SQL サーバー自体で実行されると、これは意味がありません。SQL サーバー上で実行されるコードで、サーバーをそれ自体に接続する必要があるのはなぜですか?!?!
私がやろうとしていることのベストプラクティスはありますか? ストアド プロシージャの実行に使用されるのと同じ接続を使用して、コード内の行を選択できますか?