在使用JRuby,ActiveRecord和JDBC访问MS SQLserver时,如何设置架构和处理属性名称的大小写

| 我在访问SQL Server数据库时遇到两个问题: 如何设置架构 我需要访问的表位于模式\'general \'下,而不是\'dbo \'下。除非我使用set_table_name,否则我会收到类似“无效对象”的错误信息
class Role < ActiveRecord::Base
  set_table_name \"general.Role\"
end
还有另一种方法可以在jdbc url的属性中设置架构。我检查了MS jdbc驱动程序和jtds驱动程序,但是找不到这样的属性。 如何处理属性名称 访问db2时,所有属性名称均为小写。但是对于mssql,属性名称保持与数据库中定义的大小写相同,例如\“ RoleID \”。我想知道是否只有db2驱动程序将属性名称强制为小写。     
已邀请:
在T-SQL中,完全限定的对象名称为
<database>.<owner>.<objectname>
。请注意,您要问的是所有者而不是模式(我想您来自Oracle?)。 鉴于它是对象所有者,而不是“您连接到的架构”(在Oracle范例中),所以我认为“连接到所有者”没有任何意义,这就是您要问的。 您描述的使用
set_table_name
方法在这种情况下是完全有效的。即使您的
Role
表由dbo拥有,您仍然必须使用set_table_name,因为默认情况下ActiveRecord会查找\“ role \”(并且区分大小写)。     

要回复问题请先登录注册