我只读了一些SQL Sever 2008 R2数据库,我需要将数据从一些表复制到我数据库中的表中;两个数据库都具有相同的排序规则。
源数据库使用许多text
数据类型的列。我可以安全地在varchar(MAX)
类型的数据库中创建目标列并且没有任何风险地复制数据(我使用INSERT语句来复制数据)吗?
换句话说,我可以安全地将字符串数据从text
类型的列复制到varchar(MAX)
列吗?两列都使用相同的排序规则。
答案 0 :(得分:37)
是的,肯定 - VARCHAR(MAX)
是您应该使用的类型。这两种类型的底层实现基本相同(在足够大的数据上,或者在从文本到VARCHAR(MAX)
的类型更改之后),如果您担心这一点。
您甚至可以通过以下方式将TEXT
类型的现有列“转换”为VARCHAR(MAX)
:
ALTER TABLE dbo.YourTableHere
ALTER COLUMN YourTextColumnHere VARCHAR(MAX)
这会将您的TEXT
列转换为VARCHAR(MAX)
列,而不会丢失任何数据。
试试吧! (首先在现有数据库的副本上,当然)