在SQL Server中的text和varchar(MAX)之间进行转换

时间:2012-05-15 08:28:20

标签: sql-server

我只读了一些SQL Sever 2008 R2数据库,我需要将数据从一些表复制到我数据库中的表中;两个数据库都具有相同的排序规则。

源数据库使用许多text数据类型的列。我可以安全地在varchar(MAX)类型的数据库中创建目标列并且没有任何风险地复制数据(我使用INSERT语句来复制数据)吗?

换句话说,我可以安全地将字符串数据从text类型的列复制到varchar(MAX)列吗?两列都使用相同的排序规则。

1 个答案:

答案 0 :(得分:37)

是的,肯定 - VARCHAR(MAX)是您应该使用的类型。这两种类型的底层实现基本相同(在足够大的数据上,或者在从文本到VARCHAR(MAX)的类型更改之后),如果您担心这一点。

您甚至可以通过以下方式将TEXT类型的现有列“转换”为VARCHAR(MAX)

ALTER TABLE dbo.YourTableHere
ALTER COLUMN YourTextColumnHere VARCHAR(MAX)

这会将您的TEXT列转换为VARCHAR(MAX)列,而不会丢失任何数据。

试试吧! (首先在现有数据库的副本上,当然