1

我们有一个使用 SQL 语句的 ASP.NET 应用程序,其中表名是不合格的。编译后,它工作正常,但未编译时,它会抱怨并出错,说这些表不存在。

(限定名称看起来像Select * from MyDatabase.mySchema.MyTable;

不合格的喜欢Select * from MyTable

如果您自己在数据库上尝试这些查询,它将只使用限定名称。

这是怎么回事?我认为编译与未编译的应用程序应该以相同的方式执行代码。

4

2 回答 2

1

您在这里所说的“已编译”到底是什么意思?

我不认为你遇到的问题是你认为的那样。听起来更像是一个安全上下文问题,其中在一种情况下执行查询的用户上下文默认为将查询传递给 myschema,而另一种默认为 dbo。

于 2010-05-07T18:08:14.453 回答
0

应用程序的行为将相同,我猜您是在谈论在 Cassini 中运行和在 IIS 中运行之间的区别?

如果是这种情况,请确保您的连接字符串是特定身份,而不是冒充调用者...

于 2010-05-07T18:07:50.647 回答