【问题标题】:How to get PK info from SQL Server Compact如何从 SQL Server Compact 获取 PK 信息
【发布时间】:2012-06-24 17:42:02
【问题描述】:

我的公司正在使用 SQL Server Compact 来存储和管理本地数据库,我需要从数据库表中获取主键信息。

我过去曾使用OleDbConnection.GetSchema() 使用 Jet 和 OLE 驱动程序从 Access 数据库中获取此信息。但似乎SqlCeConnection.GetSchema() 引发了NotImplementedException(或者更确切地说,它返回DBConnection.GetSchema() 引发相同的异常)。

我不需要GetSchema() 通常返回的所有信息,只需要 PK 的名称。有没有一种好方法可以找出 SQL Server Compact 数据库中表的主键?

注意:上述方法引用不是静态函数调用。将类名视为该类型的对象引用。

【问题讨论】:

  • GetSchema 在 SQL Compact 4.0 中运行良好!
  • @ErikEJ:谢谢,我将来可能需要它。有机会我会升级的。

标签: c# sql-server-ce


【解决方案1】:
SELECT INDEX_NAME, COLUMN_NAME
  FROM INFORMATION_SCHEMA.INDEXES
  WHERE PRIMARY_KEY = 1
  AND TABLE_NAME = 'MyTable';

【讨论】:

  • 我认为视图名称不同,但它是这样做的:)
  • @leppie 我怀疑是这样,但似乎在 MSDN 上找不到有关架构的任何文档。当我找到它时会更新。
  • 你可以在视图下看到它 SSMS :) 我在过去的项目中使用了很多。
  • @AaronBertrand:+1 表示不同的思维方式。我太执着于期望对象为我做这件事,以至于我忽略了数据库本身的智能。我现在正在查看它,并将使用最终的 SQL 语句更新您的答案。如果我能让它工作,我会标记为答案。非常感谢!
  • @AaronBertrand:添加了正确的语法并标记为答案。再次感谢!
猜你喜欢
  • 2021-06-24
  • 1970-01-01
  • 2020-08-02
  • 2015-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多