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