在C#中考虑这段代码:
var command = connection.CreateCommand();
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "usp_my_procedure";
当我执行此命令时,SQL Server
(或MySQL
服务器)知道我想在哪个数据库中运行此存储过程?
这里最好的约定是什么(考虑到性能和安全性)?我应该......
Database=mydb
)此外,在SQL Server中,我认为最好明确指定数据库所有者:
command.CommandText = "dbo.usp_my_procedure";
答案 0 :(得分:3)
objSqlConnection.ChangeDatabase("Database");
OR
command.CommandText = "database.dbo.usp_my_procedure";
希望这有帮助
答案 1 :(得分:1)
如果您要为一个数据库使用连接,并且确定它不会被更改,那么您可以设置当前数据库一次 - 使用USE命令或仅使用连接字符串。在这种情况下,您可以省略对象全名 - 写dbo.table1
而不是db_name.dbo.table1
。
如果要修改/引用某些数据库中的对象,则可以选择:执行USE命令bofore语句,或使用全名 - db_name.dbo.table1
。你可以自己回答这个问题 - 哪一个更适合你。