0
我想添加和更新列的數量(P_1,P_2,P_3 ...)按順序到一個表。要更新P_2,我需要在上一步中更新P_1。有沒有寫一個循環,可以在SSMSsql服務器宏
for i in (1 to 10)
alter table tab1 add P_i
if(i>1)
update tab1 set P_i = P_(i-1)*2+[blah blah]
else
update tab1 set p_i = [blah blah]
end
end
你爲什麼這樣做?我們通常不這樣對待表格結構。首先定義你需要的所有列的表格。然後使用例如WHILE編寫T/SQL塊或過程。 – criticalfix 2013-03-12 18:32:33
重讀OP,我會同意criticalfix,你可能不想創建動態表結構。我錯過了你試圖有條件添加列。如果可能的話,創建一個固定的表結構;這是更好的數據庫設計。 – sqlfool 2013-03-12 18:39:28
你可以用遊標和[動態SQL](http://www.sommarskog.se/dynamic_sql.html)來做到這一點,但更重要的問題是*爲什麼*你想這樣做。如果您使用適當的工具來生成和管理它們(通常是某種ORM),動態生成的數據模型並不總是一件壞事。但是用這種方式生成表結構是非常不尋常的:當代碼的其他部分需要在查詢中使用它們時,如何知道列的調用方式? – Pondlife 2013-03-12 21:08:58