5

データベースからデータをプルしてdatatableオブジェクトを埋めています。何らかの理由で、間違った列がデータテーブルの主キーとして設定されています。私は試みたが役に立たなかった。dataadapterMS-SQLFillSchemaMissingSchemaAction.AddWithKey

正しい主キーはSQLServerDBスキーマで適切に定義されており、クラスター化されていない一意のインデックスによってサポートされていますPK_x

dataadapterによって主キーとして選択された列は、クラスター化された一意のインデックスに裏打ちされた一意の列です。

これらは、テーブル内の2つの列のみです。

DataAdapterはSQLからテーブルスキーマをどのように取得しますか?sysテーブル(sys.tables、sys.index_columns、sys.indexes)に問い合わせたところ、適切な主キースキーマが示されています。何が得られますか?

4

1 に答える 1

1

「一意のクラスター化インデックスがSQLServerテーブルの1つまたは複数の列に定義され、主キー制約が別の列のセットに定義されている場合、クラスター化インデックスの列の名前が返されます。名前を返すにはまたは主キー列の名前については、主キーインデックスの名前を指定するSELECTステートメントでクエリヒントを使用します。クエリヒントの指定の詳細については、クエリヒント(Transact-SQL)を参照してください。」

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

于 2013-10-29T12:16:27.903 に答える