考虑 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";