我知道我的標題並不完全措辭,所以讓我澄清。我正在使用SQL Server 2005 Express。如何將一個表的所有字段複製到SQL Server 2005 Express中的另一個更寬的表中?
我有一張表,基本上存儲一個「模板」,如果你願意。使用汽車爲例,該領域將是這樣的:
TemplateID
Color
Make
Model
現在,我有一個表示模板的「實例」另一個表。它包含模板表的所有字段以及一些領域所特有的一個實例:
InstanceID
VIN
SerialNumber
Color
Make
Model
我寫一個存儲過程中插入新行,在「實例」表。此存儲過程將採用「VIN」和「SerialNumber」的輸入參數,但我希望它從相應的「模板」中複製「顏色」,「製作」和「模型」。該模板位於已知的「TemplateID」中。
我正在尋找如何寫這個存儲過程的建議。這將是簡單的,如果它不是一個事實,即這些表包含100多個字段(我沒有設計他們,但我使用它們卡住了。)我想這樣做:
INSERT INTO Instance(VIN, SerialNumber, "EverythingElse")
VALUES (@VIN, @SerialNumber, SELECT * FROM Template WHERE TemplateID = 1)
換句話說,我只想提供(通過參數)未存儲在「模板」中的字段,並從模板中複製其他所有內容。沒有每個領域的手工編碼都可能有這樣的事情嗎?
這個唯一的問題是,我將有100多個字段名(A,B,C,......) 。我試圖避免創建這樣的超長查詢。我意識到這可能是不可能的,但我想我會問是否有更好的方法。 – 2010-02-01 19:49:34
看到我的其他答案。 – ctrlShiftBryan 2010-02-01 19:56:55
你爲什麼反對100個列名?如果這就是它,那就是itisi。就我個人而言,在寫d =代碼時,我將它們從對象oexporer中拖放出來,但那只是我自己。這是上面動態的解決方案。 – HLGEM 2010-02-01 20:00:50