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

(合格的名字看起来像 Select * from MyDatabase.mySchema.MyTable ;

不合格 Select * from MyTable)

如果您自己在数据库上尝试这些查询,则只需获取合格的名称。

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

有帮助吗?

解决方案

您到底是什么意思?

我认为您的问题不是您认为的。听起来更像是一个安全上下文问题,在一个情况下,您正在执行以下查询的用户上下文默认情况下将查询传递给MySchema,而其他默认值则将查询传递给DBO。

其他提示

应用程序的表现也一样,我猜想您正在谈论Cassini和IIS运行之间的区别?

如果是这种情况,请确保您的连接字符串是特定的身份,而不是模仿呼叫者...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top