我有一个冗长的脚本,尝试使用T-SQL在float字段中插入带引号的浮点值(即'15.6'
)。
我有理由相信这个脚本在其开发人员计算机上运行,但由于它在我的SQL Server 2008上失败了。
当列是数字时,有没有办法配置我的服务器忽略这些引号?这比编辑脚本容易得多。
答案 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)
...将返回您可以随意使用的浮点值。