我的公司正在使用SQL Server Compact来存储和管理本地数据库,我需要从数据库表中获取主键信息。
我过去曾使用OleDbConnection.GetSchema()
来使用Jet和OLE驱动程序从Access数据库中获取此信息。但似乎SqlCeConnection.GetSchema()
会抛出NotImplementedException
(或者更确切地说它会返回DBConnection.GetSchema()
,这会抛出相同的异常。)
我不需要GetSchema()
通常返回的所有信息,只需要PK的名称。有没有找到SQL Server Compact数据库中表的主键的好方法?
注意:上述方法引用不是静态函数调用。将类名视为该类型的对象引用。
答案 0 :(得分:6)
SELECT INDEX_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.INDEXES
WHERE PRIMARY_KEY = 1
AND TABLE_NAME = 'MyTable';