如何将带引号的浮点数插入数字字段?

时间:2010-11-03 19:26:47

标签: sql-server sql-server-2008 tsql floating-point varchar

我有一个冗长的脚本,尝试使用T-SQL在float字段中插入带引号的浮点值(即'15.6')。

我有理由相信这个脚本在其开发人员计算机上运行,​​但由于它在我的SQL Server 2008上失败了。

当列是数字时,有没有办法配置我的服务器忽略这些引号?这比编辑脚本容易得多。

4 个答案:

答案 0 :(得分:2)

如果需要,引用的值会自动转换为数字。

之前我没有碰巧,因为我的机器配置了与开发者机器不同的小数分隔符。

现在我更改了控制面板中的区域设置,一切正常。

答案 1 :(得分:1)

不,引号表示它不是数字:您必须更改脚本。

SQL Server如何知道真的意味着浮动?

我也怀疑它是否适用于另一个SQL Server实例。

答案 2 :(得分:1)

我建议您首先检查两个sql server之间的修订级别。以下两个我试过的工作得很好;版本10.0.2746和10.0.1600

/****** Object:  Table [dbo].[TestTable]    Script Date: 11/03/2010 14:48:11 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[TestTable](
    [test] [float] NOT NULL
) ON [PRIMARY]


GO

insert into TestTable(test) values ('15.6')

答案 3 :(得分:0)

正如gbn所说,SQL Server将单引号视为字符串。

替代方案(仍将涉及更改脚本但可能比删除引号更容易)将对其执行强制转换:

CAST('12.5' AS FLOAT)

...将返回您可以随意使用的浮点值。