如何从SQL Server Compact获取PK信息

时间:2012-06-22 12:14:16

标签: c# sql-server-ce

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

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

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

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

1 个答案:

答案 0 :(得分:6)

SELECT INDEX_NAME, COLUMN_NAME
  FROM INFORMATION_SCHEMA.INDEXES
  WHERE PRIMARY_KEY = 1
  AND TABLE_NAME = 'MyTable';