3

当我在本地系统上使用 CFDBINFO 时,它会准确地获取默认列值并返回它们。在不同的系统上,它没有(它似乎没有注意到任何默认约束)。

两个系统都使用 CF 9,0,1,274733 并且都连接到 MSSQL Server 2008。两个系统上的代码,包括构建表的脚本,都是相同的(相同的存储库,相同的版本号)。(我还在第三个系统上进行了测试并得到了准确的结果)

我已经用多个不同的表测试了这个问题,它每次都会发生:在任性的服务器上永远不会返回默认值。我从头开始制作了新的表格,全新的名称,全新的数据库,仍然看到问题。我在自省结果中看不到任何其他差异 - 实际上 FK 和其他约束看起来很好。

只是不知道如何调试它。似乎与缓存无关。系统非常相似。有一些拜占庭式的设置吗?也许是 sql 连接器的问题?还是java版本?建议???谢谢!


根据以下建议添加注释以获得更好的格式:

查看 MSSQL 版本,我得到:

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 版权所有 (c) Microsoft Corporation Express Edition (64-bit) o​​n Windows NT 6.1 (Build 7601: Service Pack 1)

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 版权所有 (c) Microsoft Corporation Express Edition with Advanced Services (64-bit) o​​n Windows NT 6.1 (Build 7601: Service Pack 1 )(管理程序)

几乎相同,除了(Hypervisor)位 - 不确定这是否值得追求。


答案:确保 db 用户具有 ddl_admin 权限。

4

1 回答 1

1

我会尝试以下方法:

  1. cf_root/lib/neo-datasource.xml对每台服务器上的文件进行并排比较。他们可能是不同的。

  2. 检查 MSSQL 服务器的版本是否略有不同。您可能正在查看服务包问题

附录

3) 在每个数据库上,使用“生成脚本”功能生成脚本以构建所有表、视图、默认值等。比较每个生成的脚本的内容

有关 1 的其他信息,请参阅http://helpx.adobe.com/coldfusion/kb/ purpose-location-xml-configuration-files.html

于 2013-10-21T04:25:24.500 回答