24

我对某些 SQL Sever 2008 R2 数据库具有只读访问权限,我需要将其某些表中的数据复制到我数据库中的表中;两个数据库具有相同的排序规则。

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

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

4

1 回答 1

42

是的,绝对 -VARCHAR(MAX)无论如何都是您应该使用的类型。VARCHAR(MAX)如果您担心的话,这两种类型的底层实现基本上是相同的(在足够大的数据上,或者在类型从 text 更改为 之后)。

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

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

这会将您的TEXT列变成一VARCHAR(MAX)列而不会丢失任何数据。

尝试一下!(当然,首先在现有数据库副本上)

于 2012-05-15T08:38:58.170 回答