我通过datatable
从dataadapter
数据库中提取数据来填充MS-SQL
个对象。由于某种原因,错误的列被设置为数据表上的主键。我尝试FillSchema
和MissingSchemaAction.AddWithKey
无济于事。
在SQL Server数据库架构&中正确定义了正确的主键。由非群集唯一索引PK_x
支持。
dataadapter选择作为主键的列是由群集唯一索引支持的唯一列。
这是表格中仅有的两列。
DataAdapter如何从SQL检索表模式?我查询了sys表(sys.tables,sys.index_columns,sys.indexes),它们指出了正确的主键架构。是什么给了什么?
答案 0 :(得分:1)
“如果在SQL Server表中的一列或多列上定义了唯一的聚簇索引,并且主键约束是在一组单独的列上定义的,那么将返回聚簇索引中列的名称。返回主键列的名称,使用带有SELECT语句的查询提示,该语句指定主键索引的名称。有关指定查询提示的详细信息,请参阅Query Hint (Transact-SQL)。“
http://msdn.microsoft.com/EN-US/library/152bda9x(v=VS.110,d=hv.2).aspx