2014-02-20 162 views
0

我有一個表列表,其中必須更改所有列的NVARCHAR數據類型no NVARCHAR數據類型。如何在SQL Server 2008中將所有varchar數據類型列更改爲Nvarchar數據類型列

雖然更改爲NVARCHAR我應該得到所有那些非空和空列。它應該將具有> 4000的列大小更改爲NVARCHAR(MAX),並且希望在將主鍵列的大小轉換爲NVARCHAR時將其大小更改爲448.當大小超過448時,主鍵列導致轉換爲NVARCHAR時出現問題,這是由於指數誤差

+0

我認爲你必須使用cursor.select *從sys.columns其中user_type_id = 256 這揭示了一切。 – KumarHarsh

+0

請任何幫助。我期待的解決方案 – Axs

+0

引用此人, http://stackoverflow.com/questions/1327548/how-to-change-all-sql-columns-of-one-datatype-in​​to-another – KumarHarsh

回答

1

該查詢會給你所有varchar列的列表,長度和爲空

SELECT TABLE_CATALOG, 
     TABLE_SCHEMA, 
     TABLE_NAME, 
     COLUMN_NAME, 
     CHARACTER_OCTET_LENGTH, 
     IS_NULLABLE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE DATA_TYPE='varchar' 

你的問題不清楚,我來幫助更多。

當改變爲nvarchar我應該得到所有那些不爲空和空 列

這是否意味着要保留爲空財產是什麼?請更清楚地詢問。

+0

你是什麼說是正確的。但我想要將具有nvarchar類型的主鍵列的寬度更改爲248。是否有可能通過查詢得到它。在更改爲NVARCHAR時,我應該得到所有那些不爲空和空列 – Axs

+0

您不能更改'PK列'的數據類型,而不刪除'PK約束條件' – Raj

+0

嗨Raj,我將數據類型更改爲nvarchar數據庫。 – Axs

相關問題