2010-09-23 90 views
0

我有一個MS SQL Server數據庫,其上有大約75個表,並且如果具有相同主鍵的記錄不存在,或者如果他們這樣做,則嘗試將記錄插入到表中。 我可以將每個表的主鍵硬編碼到我的vb.net代碼中,但我寧願不要在稍後的日期添加更多的表,並且我的代碼需要在不更改的情況下處理這些表。有沒有辦法使用查詢從表中拉出主鍵列名,以便我可以遍歷每個執行相同代碼的表?如何提取MS SQL Server表的主鍵列的名稱?

感謝, 湯姆

附:當談到SQL時,我有點新手,所以如果您有時間,請簡單明瞭地回答。

回答

1

看一看 Find Tables With Primary Key Constraint in Database

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 
0

有這樣做的一個簡單的方法。它被稱爲ADO.NET :)

基本上,您需要一個DataAdapter來從您的數據庫獲取數據到DataSet。然後,您可以在DataSet中添加,修改或刪除行到DataTable,當您準備好提交數據庫時,您可以告訴DataAdapter這樣做。 DataSet可以跟蹤對其所做的更改,DataAdapter根據行/記錄的RowState屬性知道要使用的語句。

請參閱here如何使用ADO.NET檢索和修改數據。