我從一個傳統的MySQL數據庫將數據導入SQL Server 2005中SQL服務器 - 試圖列轉換爲XML失敗
的過程是我有一個特別的表是造成我的悲傷。我從MySQL使用鏈接的服務器和MySQL ODBC驅動程序導入後,我結束了與此:
Col Name Datatype MaxLen
OrderItem_ID bigint 8
PDM_Structure_ID int 4
LastModifiedDate datetime 8
LastModifiedUser varchar 20
CreationDate datetime 8
CreationUser varchar 20
XMLData text -1
OrderHeader_ID bigint 8
Contract_Action varchar 10
ContractItem int 4
我的主要重點是在XMLData
柱 - 我需要把它清理乾淨,並使其如此我可以將其轉換爲XML數據類型以在其上使用XQuery。
所以我的表選項「大數據排出來的」設置爲1:
EXEC sp_tableoption 'OrderItem', 'large value types out of row', 1
,然後我繼續前進,轉換XMLData
到VARCHAR(MAX)
做存儲在該領域的XML的一些清理工作。迄今爲止都很好。
但是當我現在嘗試在列XML數據類型轉換:
ALTER TABLE dbo.OrderItem
ALTER COLUMN XMLData XML
我得到這個訊息:
消息511,級別16,狀態1,行
無法創建一個大小爲8077的行,其中 大於允許的最大值 行大小爲8060.該語句有 已終止。
這是相當令人驚訝,看到除了XMLData
列只佔大約90個字節,我專門指示SQL Server來存儲所有的「大數據」行外....
所以爲什麼SQL Server拒絕將該列轉換爲XML數據?有任何想法嗎??思考?我可以檢查/改變我的方法?
更新:我不知道發生了什麼變化,但在第二次嘗試從MySQL導入原始數據轉換成SQL Server中,我能成功到NTEXT轉換 - > VARCHAR(MAX)列在XML結束.....奇怪..... anyhoo - 現在作品 - 謝謝你們所有的輸入和建議!高度讚賞!
你有樣品代碼來複制這個嗎? – 2010-08-05 21:06:13
@Ed Harper:我可以給你我的代碼片段,但棘手的部分是:該代碼在三個表上工作得很好,並且只在該問題的一個表上失敗.... – 2010-08-06 05:01:12