我的列中有一个值为'P62519'我试图在此列的前三位后添加小数为'P62.519',但它不起作用,此列的数据类型为nvarchar(10 )
Update Table
Set ColumnName = REPLACE(LTRIM(SUBSTRING(Table.ColumnName,1,3)),'','.')
where LEN(Code) > 3
我尝试了这个,但是这个Column Columnname是聚集的主键和我表中的另一列,并且不会让我这样说违反约束,虽然我不确定上面我做的是否正确。有人可以建议我如何在我的数据库中的这些值中的三个位置后添加小数?谢谢你的帮助
答案 0 :(得分:2)
确保外键指定了引用触发操作ON UPDATE CASCADE
。
我认为UPDATE
应该更像这样:
UPDATE TABLE
SET ColumnName = SUBSTRING ( ColumnName, 1, 3 ) + '.'
+ SUBSTRING ( ColumnName, 4, LEN ( ColumnName ) - 3 )
WHERE LEN ( ColumnName ) > 3;
答案 1 :(得分:0)
由于您的列充当主键,因此,您的环境正确地告诉您,如果进行了更改,您的主键将会中断!
您是否可以在应用程序层中添加小数?
答案 2 :(得分:0)
您可以使用STUFF()
功能:
UPDATE atable
SET Code = STUFF(Code, 4, 0, '.')
WHERE LEN(Code) > 3