不確定是否允許這樣做,但如果有的話,有人能告訴我T-SQL是什麼嗎?我試過以下,但無濟於事。您可以在SQL Server 2000的視圖中更改列長度嗎?
alter [View_Name]
alter column [Coln_Name] [New size/length] not null
GO
任何幫助表示讚賞。謝謝!
不確定是否允許這樣做,但如果有的話,有人能告訴我T-SQL是什麼嗎?我試過以下,但無濟於事。您可以在SQL Server 2000的視圖中更改列長度嗎?
alter [View_Name]
alter column [Coln_Name] [New size/length] not null
GO
任何幫助表示讚賞。謝謝!
不是直接。
這是從列表達式自動派生的。你可以將CAST
列表中的表達式視爲SELECT
列表中的特定數據類型。
您將需要改變列長度在基礎表,或更改SELECT語句形成投或CONVERT該柱具有不同的長度的數據類型的視圖。
視圖可以查看其他表中的數據;通常數據只是基礎表中的任何內容,所以您需要在那裏更改列。然而,你可以擁有像cast()或convert()這樣的事物的視圖。這些通常是一個壞主意,因爲每次使用視圖時都需要重新獲取數據,而這些操作會增加開銷。在視圖的設計中,您可以決定將其轉換爲另一種數據類型,或者進行任何您想要的轉換 - 但它有開銷,並且不會更改原始數據。
如果你知道當前視圖選擇,你可以使用類似:
Alter view Viewname[cloumn] as Select cast(original_data as varchar(n)) from Original_Table
我只是碰到了同樣的情況。我所做的是:
更改視圖查看錶中的列大小。
創建一個腳本來重新創建視圖(如果您還沒有的話)。
刪除視圖
使用腳本來重新創建視圖。
之後,視圖中的列大小與我對基礎表所做的更改相同。
由於視圖是從其他表派生的,因此無法更改視圖中的列大小。所以,如果您需要更改列大小,請更改表格的列大小。要更改列大小使用ALTER TABLE爲:
ALTER TABLE [表名]
ALTER COLUMN [COLUMN_NAME] DATA_TYPE(尺寸)
更改列大小之後,您可能需要刪除該視圖並重新創建它再次。
長度不是來自底層表嗎? – Joe 2012-01-05 15:43:01
視圖實際上只不過是一個命名的特定查詢。如果你想改變特定字段的大小,你需要修改底層查詢。這感覺就像你試圖將數據插入到視圖中一樣? – Yuck 2012-01-05 15:43:41
這個問題的動機是什麼? – 2012-01-05 15:45:23