SQL Server と C# の間で対話するために、SqlCommandオブジェクト、パラメーター、およびストアド プロシージャを使用しています。
私の問題は、それがまだデータベースと同期されているかどうか、実行するまでわからないことです。
たとえば、次のストアド プロシージャがあるとします。
create procedure psSync
(
@Argument VARCHAR(50)
)
--do stuff
私は自分のコードに持っています:
String myArgument="20131110"
SqlCommand sqlcmd = new SqlCommand { CommandType = CommandType.StoredProcedure, CommandText = "psSync"};
sqlCommand.Parameters.AddWithValue("@Argument", myArgument);
//execute sql command
ここではすべて問題ありません。
しかし、procをに変更している場合
create procedure psSync
(
--Desync!
@Argument Datetime
)
--do stuff
そして、myArgument を datetime に変更するのを忘れると、クラッシュしてしまい、このバグに気付くのが遅すぎることがよくあります。
私は最初に単体テストを実行しようとしましたが、トランザクションの開始とロールバックを使用して開発データベースでストアド プロシージャを実行しましたが、次のように好きではありません。
- 時間がかかる
- 製品で誤って実行される可能性があります
- データベース構成をテストdllに保存します
だから私の質問は:
C# コードと SqlServer コード (SqlCommand->ストアド プロシージャ) の間のすべての SQL リンクを迅速、効率的かつ安全にテストするにはどうすればよいでしょうか?