我希望這不是脫離主題,但我有一個真正的問題,我oculd使用一些建議。Sql Server問題
我有一個應用程序在啓動時升級自己的Sql Server數據庫(從以前的版本)。通常這很好,但是新版本必須改變幾個nvarchar列的寬度。
對於表中有大量數據的實時數據庫,這需要很長時間。似乎有兩個問題 - 一個是Sql Server似乎正在處理數據(可能重寫它),儘管實際上並沒有改變,另一個是事務日誌吞噬了大量的空間。
有什麼辦法可以規避這個問題嗎?它只是一個簡單的Alter Table ... Alter Column命令,將nvarchar(x)更改爲nvarchar(x + n),沒有什麼奇怪的,但是它在該領域造成了一個'問題'並引起很大的不滿。如果有一種方法可以在不處理現有數據的情況下更改列寬,並以某種方式抑制事務日誌內容,那將很方便。
它似乎沒有與Oracle數據庫的問題。
一個例子命令:
IF EXISTS (SELECT 1 FROM information_schema.COLUMNS WHERE table_name='ResourceBookings' AND column_name = ('ResourceBookerKey1') AND character_maximum_length <= 50)
ALTER TABLE [ResourceBookings] ALTER COLUMN [ResourceBookerKey1] NVARCHAR(80) NULL
正如你可以看到,該表只改變,如果列的寬度需要增加
TIA
我知道你所描述的代碼,但它可能仍然是有用的張貼實際的代碼。 –
聽起來你有一些頁面拆分正在進行,但我不認爲這將是必要的VAR。 – Paparazzi
這個字段是否有索引? – valex