2014-12-25 47 views
2

insert into聲明要求爲沒有默認值的所有列提供值。是否可以在表中插入任意數據?

是否可以告訴服務器

插入任何價值,你想,我不在乎,唯一 事情,我要的是你滿意的數據。

換句話說,我只是想爲列的子集顯式設置值。它可以實現嗎? (確定要關閉約束條件)

我需要在集成測試之前填充數據庫的sql腳本使用這個奇怪的功能。否則,當表格模式發生變化時,儘管測試不依賴於insert into語句所需的更改的列集,但我得到了一堆測試失敗。

+0

而不是在數據庫上做一些奇怪的事情爲什麼不使用數據庫模擬系統?你根本不需要數據庫。 –

+0

@JorgeCampos模擬系統的行爲與真正的SQL Server行爲100%相似嗎?我很樂意使用它,但我不是唯一一個做出決定的人。 –

+1

@JorgeCampos:在單元測試中使用模塊,而不是在集成測試中。集成測試就是這樣調用的,因爲它們集成了真實的組件。 –

回答

4

這樣的東西沒有內置。定義默認約束或使用系統目錄視圖反映表結構以在運行時生成測試數據。

0

隨機仍然是您必須編碼的「功能」。在工作中,我使用SQL Data Generator來生成隨機數據。是的,我可以使用大量的NEWID()和寶寶名稱數據庫進行編碼,但那不值得我花時間。

+0

我不希望隨機部分是靜態的,因爲它也具有與測試無關的結構。麻煩現在不在數據本身。 –

相關問題