我在将数据库中所有 ntext
类型的表列进行转换时遇到了问题。我编写了以下查询语句以更改我的列,但出现了语法错误:
ALTER TABLE mytable ALTER COLUMN mycolumn
VARCHAR(SELECT MAX(DATALENGTH(mycolumn)) FROM mytable);
尽管
SELECT MAX(DATALENGTH(mycolumn)) FROM mytable
返回了正确的数字,但是查询无法执行。语法错误如下:
我该怎么解决这个问题?在
varchar
内部出现关键字'select'时,语法不正确。
ntext
转换为varchar
可能会导致数据丢失,您需要使用nvarchar
吗? - Martin Smithntext
转换为varchar(max_of_length_of_column)
。在我的情况下,数据丢失会发生吗? - Jama A.ntext
是双字节的,而varchar
(在大多数排序规则下)是单字节的,所以并不是所有字符都可以被表示。 - Martin Smith