如何将列类型从varchar更改为已经有数据且数字为数字的数字。
SQL SERVER
答案 0 :(得分:0)
类似这样的
但是正如评论中所提到的,您需要了解触发器,FK等 更新为使用TRY_CONVERT
ALTER TABLE dbo.table ADD numeric_column(x,y); --x, y here is the precision, scale
GO
UPDATE dbo.table
SET numeric_column = TRY_CONVERT(NUMERIC(x,y),varchar_numbers_column)
GO
ALTER TABLE DROP COLUMN varchar_numbers_column
GO
使用Try_Convert,当转换失败时返回NULL
SELECT
Failed_Date = TRY_CONVERT(NUMERIC(12,2), '12/31/2010')
,Failed_# = TRY_CONVERT(NUMERIC(12,2), '#')
,WorkingWholeNumber = TRY_CONVERT(NUMERIC(12,2), '3')
,WorkingDecimal = TRY_CONVERT(NUMERIC(12,2), '5.67')