sql-server - 如何在 T-SQL 表值函数中切换语言

标签 sql-server tsql user-defined-functions

我需要在表值函数体内的语言之间切换,以返回不同语言的月份名称和工作日。但是当我尝试使用 SET LANGUAGE RUSSIAN 时我收到 Invalid use of a side-effecting operator 'SET COMMAND' within a function.错误。

为什么在 TVF 中设置变量时会发生这种情况?如何在 TVF 中更改语言?

最佳答案

您不能使用 set language在一个函数里面。

你用的是什么版本?

如果 2012+ 你可以做

SELECT FORMAT (GETDATE(), 'dddd', 'ru-RU'), 
       FORMAT (GETDATE(), 'MMMM', 'ru-RU')

反而。 (在回答当天返回 вторник, Сентябрь)。

在以前的版本中,您可以编写一个执行类似操作的 CLR 函数。

关于sql-server - 如何在 T-SQL 表值函数中切换语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32457005/

相关文章:

SQL:如果字段为空,则返回空字符串,否则转换为数字

sql-server - sql server 中使用 If else 条件联合所有

sql - 随机聚合?

sql - 使用 2016 年之前的 tsql 功能解压缩 gzip 字段

sql - 我使用 SQL UDF 来封装简单的报告/业务逻辑。我应该避免这种情况吗?

sql - 根据相关节点从层次结构中选择行

tsql - 重建 SQL 索引 - 何时?

c - 如何正确地将数组指针传递给 C 中的函数

scala - scala函数内部的错误处理

sql-server - SQL Azure 是否支持使用西里尔字符替换 T-SQL 函数?