0

約75個のテーブルを含むMSSQLServerデータベースがあり、同じ主キーを持つレコードが存在しない場合はテーブルにレコードを挿入しようとしています。存在する場合は更新しようとしています。すべてのテーブルの主キーをvb.netコードにハードコーディングすることはできますが、後日さらにテーブルを追加する必要があり、コードを変更せずにこれを処理する必要があるため、そうはなりません。クエリを使用してテーブルから主キー列の名前を引き出し、同じコードを実行する各テーブルをループできるようにする方法はありますか?

ありがとう、トム

PS SQLに関しては、私は少し初心者なので、時間があれば、簡単に、明確に回答してください。

4

2 に答える 2

1

データベース内の主キー制約のあるテーブルの検索をご覧ください

SELECT  i.name AS IndexName,
        OBJECT_NAME(ic.OBJECT_ID) AS TableName,
        COL_NAME(ic.OBJECT_ID,ic.column_id) AS ColumnName
FROM    sys.indexes AS i INNER JOIN 
        sys.index_columns AS ic ON  i.OBJECT_ID = ic.OBJECT_ID
                                AND i.index_id = ic.index_id
WHERE   i.is_primary_key = 1
于 2010-09-23T10:50:18.410 に答える
0

これを行う簡単な方法があります。それはADO.NETと呼ばれます:)

DataAdapter基本的に、 DB から にデータを取得するには が必要ですDataSetDataTable次に、に行を追加、変更、または削除DataSetし、DB にコミットする準備ができたら、DataAdapterそうするように指示します。はDataSetそれに加えられた変更を追跡でき、行/レコードのプロパティにDataAdapter応じて使用するステートメントを認識できます。RowState

ADO.NET を使用してデータを取得および変更する方法については、こちらを参照してください。

于 2010-09-23T10:51:23.913 に答える