我正在SQL数据库上工作,我有一个名为"价格"的列.当创建数据库时,列"Price"被设置为NVARCHAR
,我需要将其类型更改为decimal(18, 2)
,而不会丢失数据库中的数据.这应该由SQL脚本来完成
我想创建一个新列,将数据移动到其中,删除旧列,然后重命名新创建的列.
有人能帮我举一个如何做到这一点的例子吗? 另外,SQL中是否有将字符串解析为小数的函数?
谢谢
我正在SQL数据库上工作,我有一个名为"价格"的列.当创建数据库时,列"Price"被设置为NVARCHAR
,我需要将其类型更改为decimal(18, 2)
,而不会丢失数据库中的数据.这应该由SQL脚本来完成
我想创建一个新列,将数据移动到其中,删除旧列,然后重命名新创建的列.
有人能帮我举一个如何做到这一点的例子吗? 另外,SQL中是否有将字符串解析为小数的函数?
谢谢
不需要两次添加新列,只需在更新新列后删除旧列即可:
ALTER TABLE table_name ADD new_column_name decimal(18,2)
update table_name
set new_column_name = convert(decimal(18,2), old_column_name)
ALTER TABLE table_name DROP COLUMN old_column_name
请注意,如果old_column_name
不是数字,convert
可能会失败.