簡體   English   中英

如何更改SQL中的列數據類型,但僅更改列標題后的所有行?

[英]How do I alter a column's datatype in SQL, but just for all rows after the column header?

我有一列名為TITLE的varchar(10)。 除了包含列標題的第一行外,該列的其余部分恰好都是整數,因此我想將數據類型更改為int。

ALTER TABLE X
ALTER COLUMN TITLE int

轉換第一行(即列標題)時出現錯誤:“將varchar值'TITLE'轉換為數據類型int時轉換失敗。

那么,如何轉換除列標題之外的所有行的數據類型?

簡短的回答是 ,你不能在一個SQL列混合數據類型。 數據類型必須與排序,構建索引等保持一致。

您可能會使用另一個表來存儲各種列標題,或者在同一表中存儲另一個列。

使用NoSQL解決方案(例如MongoDB)可能是一種方法,具體取決於要存儲的數據類型。 這些解決方案使您可以更加靈活地使用架構,每個文檔甚至可能有所不同。

抱歉,您不能在同一列上使用多種數據類型。

資料類型

你不知道 列不是可以各自具有自己類型的獨立變量的集合。 列中的所有內容都具有相同的類型。 如果您嘗試執行此操作,則您的架構不太可能是應該的。 如果您發布更多細節,則可以通過改進的模式獲得一些答案。

您不能在列中混合使用“ n”個匹配數據類型。 您可以使用諸如VarBinaryXML類的模糊數據類型,並根據需要對其進行解釋。

OTOH,可以使用sp_addextendedproperty存儲列標題和其他無關緊要的絨毛。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM