1

我正在尝试在 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”,因为它会在生成的输出文件中产生一些格式问题。任何建议如何保留它。

4

2 回答 2

1

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?

于 2013-07-04T05:55:17.753 回答
0

没有引号的 '030' 只是被 sql server 解释为整数 30。此外,当您尝试在 varchar 字段中插入一个整数时,它会很好地插入它,因为 varchar 字段接受任何字母数字值。但是,以相反的方式执行此操作可能会引发错误,因为 varchar 不能始终转换为整数。

于 2013-07-04T06:53:34.223 回答