从DataAdapter填充DataTable - 选择了错误的列作为主键

Dre*_*w R 5 c# sql-server datatable ado.net dataadapter

datatable通过dataadapterMS-SQL数据库中提取数据来填充对象.由于某种原因,错误的列被设置为数据表上的主键.我曾尝试FillSchemaMissingSchemaAction.AddWithKey无济于事.

正确的主键在SQL Server数据库架构中正确定义,并由非群集唯一索引支持PK_x.

dataadapter选择作为主键的列是由聚簇唯一索引支持的唯一列.

这些是表中仅有的两列.

DataAdapter如何从SQL检索表模式?我查询了sys表(sys.tables,sys.index_columns,sys.indexes),它们表明了正确的主键架构.是什么赋予了?

小智 1

“如果在 SQL Server 表中的一个或多个列上定义了唯一聚集索引,并且在一组单独的列上定义了主键约束,则将返回聚集索引中的列的名称。返回名称或主键列的名称,请在指定主键索引名称的 SELECT 语句中使用查询提示。有关指定查询提示的详细信息,请参阅查询提示 (Transact-SQL)

http://msdn.microsoft.com/EN-US/library/152bda9x(v=VS.110,d=hv.2).aspx