Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我们有一个使用 SQL 语句的 ASP.NET 应用程序,其中表名是不合格的。编译后,它工作正常,但未编译时,它会抱怨并出错,说这些表不存在。
(限定名称看起来像Select * from MyDatabase.mySchema.MyTable;
Select * from MyDatabase.mySchema.MyTable
不合格的喜欢Select * from MyTable)
Select * from MyTable
如果您自己在数据库上尝试这些查询,它将只使用限定名称。
这是怎么回事?我认为编译与未编译的应用程序应该以相同的方式执行代码。
您在这里所说的“已编译”到底是什么意思?
我不认为你遇到的问题是你认为的那样。听起来更像是一个安全上下文问题,其中在一种情况下执行查询的用户上下文默认为将查询传递给 myschema,而另一种默认为 dbo。
应用程序的行为将相同,我猜您是在谈论在 Cassini 中运行和在 IIS 中运行之间的区别?
如果是这种情况,请确保您的连接字符串是特定身份,而不是冒充调用者...