处理小数时,French_CI_AS的语法

时间:2012-09-24 19:27:58

标签: sql sql-server-2008 decimal collation

我一直在进行大量的Google搜索,试图找到使用法语(加拿大)本地化来插入或更新带小数值的列的必要语法。 我不是法语母语人士,也没有使用法语校对的经验。使用Latin_General_CI_AS查询将如下所示:

INSERT INTO [dbo].[MyTable] (ID, StringField, DecimalField) VALUES (1, 'Some value', 0.5)

但是当使用法语排序规则时,十进制数看起来像0,5而不是0.5,只是一个简单的转换就会将SQL Server变成一个tizzy。 INSERT查询看起来像这样(虽然,这不起作用):

INSERT INTO [dbo].[MyTable] (ID, StringField, DecimalField) VALUES (1, 'Some value', 0,5)

SQL Server认为5是未指定列的附加值。我怎样才能做到这一点。是否有一些字符可以包装数字以使SQL Server将其视为十进制值?

1 个答案:

答案 0 :(得分:0)

它不是关于整理,而是关于使用的小数分隔符。

您应该使用参数查询。如果使用参数化命令,则SQL数据提供程序会关注小数分隔符。

string sqlcom = @"EXECUTE [dbo].[MyProc]  @x";
SqlCommand com = new SqlCommand(sqlcom, MyConnectionX);
com.Parameters.Add("@x", SqlDbType.Decimal);
com.Parameters["@x"].Value = someValue;
com.ExecuteNonQuery();