提问人:Nace Kapus 提问时间:7/19/2023 最后编辑:Dale KNace Kapus 更新时间:7/20/2023 访问量:56
动态设置会话的语言
Set language for the session dynamically
问:
我在存储过程中参数化语言变量时遇到问题。我正在编写一个创建日期维度表的过程,并希望有一个“语言”参数。
根据文档,这应该可以通过创建一个 类型的变量来实现。sysname
但是,执行以下代码会导致错误:
DECLARE @Language sysname;
SET @Language = 'Spanish';
SET LANGUAGE @Language;
第 1 行、第 20 列处的解析错误:“N'Spanish”附近的语法不正确。
我注意到我可以使用动态 SQL 执行命令,尽管这实际上并没有改变语言,这似乎很奇怪。
例如:
SET LANGUAGE English
EXEC('SET LANGUAGE Spanish') -- this doesn't work
SELECT DATENAME(MONTH, GETDATE()) AS MonthName
SET LANGUAGE Spanish -- this works
SELECT DATENAME(MONTH, GETDATE()) AS MonthName
返回:
月名 |
---|
七月 |
月名 |
---|
胡里奥 |
有什么想法吗?
答: 暂无答案
评论
create date dimension table
在维度表本身中创建并存储所需的字符串。这是这张表存在的最重要原因之一。不仅允许更轻松地进行聚合,而且还为项目提供报告标签。这是一般维度的常见指南。数据库服务器生成的标签与企业使用的标签不同。尤其是财政期间。通常有多组标签列,每种目标语言一组。页/列存储压缩消除了存储成本并提高了 IO 性能FORMAT
FORMAT
FORMAT