TSQL:在更改sql server中的数字列时如何转换值?

时间:2011-01-13 22:17:48

标签: sql sql-server tsql sql-server-2008 alter-column

这是在SQL Server 2008上。

我要将几列从moneydecimal转换为varchar,例如名为item_amount的列。

  • 如何转换这些值?

    是否与convert(varchar, item_amount)相同?运行像select item_amount, convert(varchar, item_amount) from <table>这样的查询会使列完全相同,这就是我期望和想要的。

  • 我应该避免可能的截断,对吗?

    假设varchar列中有足够的字符(从小数点的max precision for a decimal column is 38 + 1个字符开始,这将是39)。没有任何数值甚至接近38位数,大多数在3-5范围内。

  • 我已经在测试表上成功运行了这个命令,并且想要确保我没有忽略或忘记会让我感到困惑的事情:alter table <mytable> alter column item_amount varchar(39) default '0'(这是在删除现有默认值之后( (0))约束)。

1 个答案:

答案 0 :(得分:2)

关于转换的方式,是的,只要您放置的VARCHAR列具有正确的可用字符数,您就是正确的。

关于你对varchar的金额变化,你应该没事,因为它会进行转换。

我只需要注意,执行此操作听起来不是一个好主意,因为您不再需要与数字进行排序,过滤等交互....但只是注释。