我正在使用MS SQL Server,並且已經創建了多個列和數據庫。一個名爲Inventory的數據庫中的這些列中的3個是:CaseQuantity,UnitsQuantity和TotalUnits。如何更改TotalUnits列變爲(CaseQuanity * 12)+ UnitsQuantity?更改SQL中的列方程
我對此很陌生。非常感謝你的時間,非常感謝。
我正在使用MS SQL Server,並且已經創建了多個列和數據庫。一個名爲Inventory的數據庫中的這些列中的3個是:CaseQuantity,UnitsQuantity和TotalUnits。如何更改TotalUnits列變爲(CaseQuanity * 12)+ UnitsQuantity?更改SQL中的列方程
我對此很陌生。非常感謝你的時間,非常感謝。
如果你正在嘗試一種新的計算列添加到現有的表,你可以使用ALTER TABLE
這樣做:
ALTER TABLE your_table --change this to your tablename
ADD TotalQuantity AS (CaseQuantity * 12) + UnitsQuantity PERSISTED
如果你只是想選擇一個新的computed
列,你可以這樣做是這樣的:
SELECT CaseQuantity
,UnitsQuantity
,TotalUnits
,(CaseQuantity * 12) + UnitsQuantity AS TotalQuantity
FROM your_table --change this to your tablename
如果您正在尋找重新創建一個新的計算列的表,那麼你可以做這樣的事情:
CREATE TABLE your_table
(
CaseQuantity int
,UnitsQuantity int
,TotalUnits int
,TotalQuantity AS (CaseQuantity * 12) + UnitsQuantity PERSISTED
)
期堅持
您可能已經注意到,我也用「堅持」爲 計算列的屬性。計算列的此屬性在SQL Server 2005及更高版本中引入了 。對於任何 計算列都很重要,因爲許多附加功能都依賴於它。要成爲 能夠將計算列作爲持久性,它必須是確定性的 。
這裏有一些規則:
- 如果關閉然後再計算永久性屬性欄將只是一個虛擬列。該列中的任何數據都不會存儲在磁盤上,並且每次在腳本中引用時都會計算其值。如果 此屬性設置爲活動,則計算列的數據將爲 存儲在磁盤上。
- 如果引用列中的任何更新是Persisted,它們將在計算列中自動同步。
- 除其他一些條件外,還需要Persisted才能在計算列上創建索引。
如果我想將現有的Column TotalUnits更改爲(CaseQuanity * 12)+ UnitsQuantity,該怎麼辦? –
@LeoOsman我會從表中刪除現有的列,並使用上面的alter table語句重新創建TotalUnits列。這裏是查詢放置你的列:'ALTER TABLE your_table DROP COLUMN TotalQuantity;' – FutbolFan
您可以在表中使用計算列。應該不插入TotalUnits列。它被計算到其他列。 更詳細地參考這個鏈接
什麼是'TotalQuantity'?一個新的專欄?它沒有列在你的「3列」列表中。 – Kritner
請爲您的RDBMS選擇一個標籤...不是3:/ – Kritner
您是否試圖在表格上創建一個新列(注意,您稱之爲數據庫,聽起來好像你實際上在談論表格)。你是否希望在select語句中有一個新的列? – Kritner