在SQL Server 2008 R2上,我有一个明确以
开头的脚本USE MyDatabase;
它永远不会切换到任何其他数据库; 当我执行整个脚本时,它会针对正确的数据库运行,正如我在第一行中指定的那样。
但是,如果在运行整个脚本之后,我突出显示并运行其中的一部分,SSMS会间歇性地在另一个数据库上运行它。
这可能非常危险,而且以前版本的SQL Server从未发生过这种情况! 我怎样才能避免这个危险的错误?
答案 0 :(得分:5)
这听起来像this Connect bug,如果你有一个RAISERROR,或者你的SSMS会话被断开连接(这可能是由于片状网络,你可能不会注意到它发生了)。这是一个危险的错误,虽然Connect项目没有明确说明,我建议您将SQL Server 2008 R2 SP1应用到您的工作站,因为我听说它已在那里修复。
答案 1 :(得分:1)
我也更喜欢在所有查询中完全限定我的表(database.schema.table),而不是依赖于use语句。