SQL行仅为varchar(10),但有30+;里面的人物
外部数据库上的表(当我单击modify时)说明A行是一个varchar(10),但当我查看数据时,其中显然有更多的字符。这怎么可能 这让我很担心,因为当我从那一行提取数据时,我只得到10个字符,其余的都被截断了。我不允许修改外部数据库表。这怎么可能? 该列可能最初是一个varchar(30),后来改为varchar(10)。我假设数据是在更改为varchar(10)后写入的,这使得情况变得非常混乱。如果无法将列的长度改回30,我将研究将旧数据截断为10个字符的含义 更新 运行以下语句以确认列长度:SQL行仅为varchar(10),但有30+;里面的人物,sql,sql-server,truncate,varchar,Sql,Sql Server,Truncate,Varchar,外部数据库上的表(当我单击modify时)说明A行是一个varchar(10),但当我查看数据时,其中显然有更多的字符。这怎么可能 这让我很担心,因为当我从那一行提取数据时,我只得到10个字符,其余的都被截断了。我不允许修改外部数据库表。这怎么可能? 该列可能最初是一个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
Microsoft SQL Transact-No最新的数据也超过了30+40个字符,即使存在varchar(10)限制。他们有一个前端在中输入数据,并有大量的过程,级联更新/插入/删除触发器,这样可以允许他们覆盖varchar(10)限制吗?User589983:我刚刚运行了你的代码,上面写着字符的最大长度:10我又得到了10。我还做了一个选择,并比较了该行中每个项目的长度。我认为当我选择它时,最大值为10,但当我打开远程服务器上的表并查看原始数据(不选择)时,我看到30多个字符。如果不选择,您如何查看原始数据?给您一个+1,因为我认为OP不知道他在说什么。