SQL 行仅为 varchar(10),但其中包含 30 多个字符

问题描述 投票:0回答:2
外部数据库上的表(当我单击“修改”时)指出 A 行是 varchar(10),但当我查看数据时,其中显然有更多字符。这怎么可能?

这让我担心,因为当我从该行提取数据时,我只得到 10 个字符,其余的都被切断了。我不允许修改外部数据库表。

sql sql-server truncate varchar
2个回答
2
投票

这怎么可能? 该列最初可能是 varchar(30),随后更改为 varchar(10)。我假设自从更改为 varchar(10) 以来已经写入了数据,这使得情况变得一团糟。如果无法将列的长度改回 30,我将研究将旧数据截断为 10 个字符的影响。

更新 运行以下语句来确认列长度:

select character_maximum_length from information_schema.columns where table_name='tablename' and COLUMN_NAME='columnname'

更新2:

select max(len(column_name)) from tablename
    

0
投票
它可以是一个 varchar10 (x30) 列,具有“的幂”修饰符。

© www.soinside.com 2019 - 2024. All rights reserved.