2015-11-19 169 views
0

我已經被問過一個問題,我不確定答案。如果模板字段長度設置爲250個字符,但隨後更改爲1000,則發生升級時會發生什麼情況並將字段長度重新設置爲250?將長度設置爲1000時在該字段中超過250的所有數據都將在列中截斷嗎?或者數據仍然在列中,但在模板中只能看到250個字符?SQL Server 2008 R2模板字段長度

回答

2

如果有任何更大的數據,超過250個字符,它會拋出這樣的錯誤:

String or binary data would be truncated. The statement has been terminated. 

您必須手動截斷數據:

UPDATE table SET Column=LEFT(Column, 250); 

然後你終於可以調整列的大小:

ALTER TABLE table ALTER COLUMN Column nvarchar(250), null; 
+0

我應該改說我們正在導入模板,而不是更新它。因此,當導入發生時列的長度爲250,它會將那些列行中的所有數據再次截斷爲250個字符,這意味着我們已經丟失了數據。有沒有辦法阻止這種情況的發生,除了更新正在導入的模板中的列? –

+0

不,您將不得不將數據存儲在較大的列中,或長度不超過250個字符的多列,並將模板存儲在多個部分中。或者使用不同的方式來存儲模板數據(二進制,blob ...) – krtek