2012-06-22 78 views
2

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

我以前使用OleDbConnection.GetSchema()来从Access数据库中使用Jet和OLE驱动程序获取这些信息。但是看起来SqlCeConnection.GetSchema()会抛出一个NotImplementedException(或者说它会返回DBConnection.GetSchema(),它会引发相同的异常)。

我不需要通常由GetSchema()返回的所有信息,只是PK的名字。是否有一种很好的方法来查找SQL Server Compact数据库中的表的主键?

NOTE:上述方法引用不是静态函数调用。考虑将类名称作为该类型的对象引用。

+1

GetSchema适用于SQL Compact 4.0! – ErikEJ

+0

@ErikEJ:谢谢,我将来可能需要这些。当我有机会时我会升级。 – MrWuf

回答

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

我认为视图名称是不同的,但这是如何完成:) – leppie

+0

@leppie我怀疑是这样,但似乎无法在MSDN上的架构上找到任何文档。当我找到它时会更新。 –

+2

虽然在视图下可以看到SSMS :)我在过去的项目中使用过它。 – leppie

相关问题