如何确保KEY_COLUMN_USAGE在添加/创建新索引后更新。即:
CREATE UNIQUE INDEX [UK_Common.UserConnection]
ON [Common.UserConnection] ([SessionId] ASC,[UserId] ASC);
GO
我必须数据库,一个是转换/从旧版本(V1)更新到新版本(V10),另一个是全新(V10)数据库。当我比较数据库时,所有内容都匹配(包括PK, FK,索引等),除了:
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
我可以看到我新创建的uniq索引([UK_Common. cn]在转换的数据库中缺少UserConnection] SessionId和UserId。与新(V10)数据库相比,转换后的数据库在"key_column_usage"表中计算的行数更少。 如果我从任何sql ce客户端应用程序中提取"创建sql表脚本",则转换/更新的脚本和新(V10)脚本的脚本是相同的。 我尝试在转换器中包含插入语句: 结果:不能将数据添加到系统表或模式信息视图。[只读表名= @@INFORMATION_SCHEMA.]KEY_COLUMN_USAGE] 我也试图编码这个inn .net的选择查询(rot to count key error)位于。 结果:不能将数据添加到系统表或模式信息视图。[只读表名= @@INFORMATION_SCHEMA.]KEY_COLUMN_USAGE] 问题与asp.net项目中失败的单元测试(mstest)有关:断言。IsTrue失败了。键列使用的计数不同。 如何更新:INFORMATION_SCHEMA。编辑/更改索引后的KEY_COLUMN_USAGE ? 。NET 4.0SQL ce 4.0VS2010 INSERT INTO [INFORMATION_SCHEMA.KEY_COLUMN_USAGE]
(COL0,COL1,COL2,COL3)
VALUES ('value0','value1','value2',value3)
GO
("SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE")
您不能更新该表(视图),它将由ms sql ce实例根据键的使用进行更新。在任何RDBMs中直接修改information_schema通常都不是一个好主意。在大多数情况下,用户不允许这样做。
编辑:我不认为information_schema的差异应该作为测试中的异常标准。