我只读过一些SQL Sever的2008 R2数据库访问,我需要将数据从它的一些表在我的数据库中的表的复印件;两个数据库都具有相同的排序规则。转换
源数据库使用了大量text
数据类型的列。我可以安全地使我的数据库中的目标列varchar(MAX)
和复制数据没有任何风险(我正在使用INSERT语句来复制数据)?
换句话说,我可以放心地从text
类型的列复制字符串数据的varchar(MAX)
列?两列使用相同的排序规则。
我只读过一些SQL Sever的2008 R2数据库访问,我需要将数据从它的一些表在我的数据库中的表的复印件;两个数据库都具有相同的排序规则。转换
源数据库使用了大量text
数据类型的列。我可以安全地使我的数据库中的目标列varchar(MAX)
和复制数据没有任何风险(我正在使用INSERT语句来复制数据)?
换句话说,我可以放心地从text
类型的列复制字符串数据的varchar(MAX)
列?两列使用相同的排序规则。
是的,没错 - VARCHAR(MAX)
是你应该使用反正类型。这两种类型的底层实现基本相同(对于足够大的数据,或者从文本到VARCHAR(MAX)
的类型更改之后),如果担心的话。
你甚至可以TEXT
类型的现有列“转换”到VARCHAR(MAX)
通过:
ALTER TABLE dbo.YourTableHere
ALTER COLUMN YourTextColumnHere VARCHAR(MAX)
这将打开你的TEXT
列到VARCHAR(MAX)
列不会丢失任何数据。
试试吧! (上的拷贝第一个当前的数据库,当然)
注意:多年后警告我们 - MS实际上删除了云中的Sql数据仓库的TEXT类型。它仍然可用于'Azure SQL数据库',但超高端数据仓库已将其删除:https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse -tables-data-types –