我在MSSQL服務器上發現了一個奇怪的現象。結果集中的雙記錄
讓我們說我們有一個表:
CREATE TABLE [testTable]
(
[ID] [numeric](11, 0) NOT NULL,
[Updated] [datetime] NULL,
PRIMARY KEY (ID)
);
我做一個簡單的基於新的領域選擇:
SELECT TOP 10000 ID, Updated
FROM testTable
WHERE Updated>='2013-05-22 08:55:12.152'
ORDER BY Updated
而現在到了有趣的部分:我怎麼能有結果集雙記錄 - 我的意思是具有不同更新值的2條記錄中的相同ID。
對我來說,它似乎是,更新的日期時間值已更改,它被包括在結果集中多一次。但是有可能嗎?
更新:我使用了從SQL服務器下載數據 的源代碼:
using (SqlCommand cmd = new SqlCommand(sql, Connection) { CommandTimeout = commandTimeout })
{
using (System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter(cmd))
{
DataTable retVal = new DataTable();
adapter.Fill(retVal);
return retVal;
}
}
連接=的SqlConnection
SQL = 「SELECT TOP 10000 ......」
看看你的數據庫,那裏肯定沒有重複的ID –
@Damien_The_Unbeliever然後也...第二次插入應該失敗,因爲ID是主鍵 –
如果完整性失敗,它應該是第一個問題開始而不是假設它可以接受重複的PK。如果主鍵不起作用,可能試圖刪除整個表並重新創建它將會是一個解決方案。 –