今天我遇到一个问题就是在SQL Server查询分析器里运行语句,来把money类型字段改为nvarchar类型,直接运行下面代码:
以下是引用片段: ALTER TABLE [formname] ALTER COLUMN [fieldname] NVARCHAR (50) |
提示错误:不允许从数据money 到 nvarchar 的隐性转换。请使用 CONVERT 函数来运行此查询。
后来经过一番研究,正确代码如下,给大家分享一下:
以下是引用片段: --删除旧约束 ALTER TABLE [formname] DROP CONSTRAINT [DF_formname_fieldname] GO --先把money类型转换为NUMERIC类型 ALTER TABLE [formname] ALTER COLUMN [fieldname] NUMERIC (38,4) GO --再把NUMERIC类型转换为NVARCHAR类型 ALTER TABLE [formname] ALTER COLUMN [fieldname] NVARCHAR (50) COLLATE Chinese_PRC_CI_AS NULL GO --SQL Server添加新的默认约束 ALTER TABLE [formname] ADD CONSTRAINT [DF_formname_fieldname] DEFAULT ('www.viming.com') FOR [fieldname] GO |