动态SQL Server语句

时间:2015-08-20 06:32:08

标签: sql sql-server dynamic

Declare @table varchar(50)
Declare @SQl_STR nvarchar(max)
set @table='test'
 Exec ('UPDATE '+@table+' SET 
RATE = REPLACE (RATE, ''.'', '','') ')

我收到以下错误 -

  

将数据类型varchar转换为float时出错。

我不明白错误,请帮忙

1 个答案:

答案 0 :(得分:0)

问题是列RATE是FLOAT数据类型,在使用代码之前应将其转换为varchar

Declare @table varchar(50)
Declare @SQl_STR nvarchar(max)
set @table='test'
 Exec ('UPDATE '+@table+' SET 
RATE = REPLACE (ltrim(str(RATE,10,2)), ''.'', '','') ')

但最好的方法是在前端应用程序中进行此形成