我正在尝试在 Sql Server 2008R2 的列中插入一个值:
Create table Test
(
Age varchar(3) NOT NUll
)
insert into test value ('030')
Output:
30
当我在 Sybase 中尝试同样的事情时:
Output:030
关注:我也需要在 Sql Server 2008R2 中保留“0”,因为它会在生成的输出文件中产生一些格式问题。任何建议如何保留它。
我正在尝试在 Sql Server 2008R2 的列中插入一个值:
Create table Test
(
Age varchar(3) NOT NUll
)
insert into test value ('030')
Output:
30
当我在 Sybase 中尝试同样的事情时:
Output:030
关注:我也需要在 Sql Server 2008R2 中保留“0”,因为它会在生成的输出文件中产生一些格式问题。任何建议如何保留它。
SQL2008 的语法有点不同,{}
变成()
和insert into [tablename] value ()
变成insert into [tablename] values ()
所以让它在SQL2008中工作。
Create table Test
(
Age varchar(3) NOT NUll
)
insert into test values ('030')
SELECT * FROM test
顺便说一句,你为什么使用 varchar 而不是 char?
没有引号的 '030' 只是被 sql server 解释为整数 30。此外,当您尝试在 varchar 字段中插入一个整数时,它会很好地插入它,因为 varchar 字段接受任何字母数字值。但是,以相反的方式执行此操作可能会引发错误,因为 varchar 不能始终转换为整数。