为什么sql将一个数字转换为'*'charachter

Coo*_*3oY 4 sql sql-server-2008

我在SQL Server 2008中运行此查询

declare @a varchar(1)
select @a = 22
select @a
Run Code Online (Sandbox Code Playgroud)

它回归了

*
Run Code Online (Sandbox Code Playgroud)

为什么这个查询产生这个结果?

JNK*_*JNK 5

您正在将2个字符的数字转换为1个字符的字段.

它不适合.

SQL表示数据丢失.否则,它只显示一个2,你不知道这是否是完整的值.