2015-11-19 87 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