C#でこのコードを検討してください:
var command = connection.CreateCommand();
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "usp_my_procedure";
このコマンドを実行すると、このストアドプロシージャを実行するデータベースがわかりますSQL Server
か?MySQL
ここでの最良の規則は何ですか(パフォーマンスとセキュリティの両方を考慮して)?するべきか...
- データベース名を明示的に指定しますか?
- 接続を作成するたびに、 USEコマンドを使用してデフォルトのデータベースを設定しますか?
- 現在のデータベースが接続によって設定されていると仮定しますか?(例
Database=mydb
) - 他の?
また、SQL Serverでは、データベースの所有者を明示的に指定するのが最善だと思います。
command.CommandText = "dbo.usp_my_procedure";