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

时间:2012-09-18 16:15:29

标签: c# sql-server ado.net datatable dataadapter

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

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

dataadapter选择作为主键的列是由群集唯一索引支持的唯一列。

这是表格中仅有的两列。

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

1 个答案:

答案 0 :(得分:1)

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

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