题
我们有一个使用SQL语句的ASP.NET应用程序,其中表名是不合格的。编译时,它可以正常工作,但是当未编译时,它会抱怨并出现错误,说这些表不存在。
(合格的名字看起来像 Select * from MyDatabase.mySchema.MyTable
;
不合格 Select * from MyTable
)
如果您自己在数据库上尝试这些查询,则只需获取合格的名称。
这是怎么回事?我认为编译的与未编译的应用程序应执行相同的编码方式。
解决方案
您到底是什么意思?
我认为您的问题不是您认为的。听起来更像是一个安全上下文问题,在一个情况下,您正在执行以下查询的用户上下文默认情况下将查询传递给MySchema,而其他默认值则将查询传递给DBO。
其他提示
应用程序的表现也一样,我猜想您正在谈论Cassini和IIS运行之间的区别?
如果是这种情况,请确保您的连接字符串是特定的身份,而不是模仿呼叫者...
不隶属于 StackOverflow