0

我一直在做很多谷歌搜索,试图找到使用法语(加拿大)本地化插入或更新具有十进制值的列所需的确切语法。我不是以法语为母语的人,也没有任何使用法语排序规则的经验。使用 Latin_General_CI_AS 查询将如下所示:

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

但是当使用法语排序规则时,十进制数字看起来0,5不是0.5简单的翻译,而是让 SQL Server 陷入混乱。INSERT 查询看起来像这样(虽然,这不起作用):

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

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

4

1 回答 1

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();
于 2012-09-25T08:15:51.470 回答