Update of IINFORMATION_SCHEMA.KEY_COLUMN_USAGE Sql CE



如何确保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)脚本的脚本是相同的。

我尝试在转换器中包含插入语句:

    INSERT INTO [INFORMATION_SCHEMA.KEY_COLUMN_USAGE]
            (COL0,COL1,COL2,COL3)
    VALUES ('value0','value1','value2',value3)
    GO

结果:不能将数据添加到系统表或模式信息视图。[只读表名= @@INFORMATION_SCHEMA.]KEY_COLUMN_USAGE]

我也试图编码这个inn .net的选择查询(rot to count key error)位于。

("SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE")

结果:不能将数据添加到系统表或模式信息视图。[只读表名= @@INFORMATION_SCHEMA.]KEY_COLUMN_USAGE]

问题与asp.net项目中失败的单元测试(mstest)有关:断言。IsTrue失败了。键列使用的计数不同。

如何更新:INFORMATION_SCHEMA。编辑/更改索引后的KEY_COLUMN_USAGE ?

。NET 4.0SQL ce 4.0VS2010

您不能更新该表(视图),它将由ms sql ce实例根据键的使用进行更新。在任何RDBMs中直接修改information_schema通常都不是一个好主意。在大多数情况下,用户不允许这样做。

编辑:我不认为information_schema的差异应该作为测试中的异常标准。

最新更新