我希望在数据库中添加一些查找列表,但我希望它们易于本地化(SQL 2005,ADO.NET)
这将包括:
- 同时轻松管理多种语言
- 从数据库中轻松检索值
- 备用语言(如果缺少所选语言)
我正在考虑有一个表来存储多语言查找列表(对不同的语言使用相同的 ID)并使用一个函数来返回查找列表的值 - 通过接收 ID 和语言。
陷阱之一是我必须手动向使用查找列表的每个查询添加语言参数。
我正在寻找一种解决方案,可以让我将参数作为“会话/全局变量”发送,或者使用 sql 查询自动发送参数,以及自行检索它的函数(自动附加参数,要么能够读取参数)。
解决方案可能看起来像这样,但我不介意它是否不同,只要它没有将参数显式地提供给查询(伪代码):
1. Send the language using "the method" 2. Execute Query 3. Get the localized results
澄清:
通常查询看起来像这样(记住使用查找功能):
SELECT .., GetLookupList1(lookup_ID, language), .. FROM TABLE
GetLookupList1 是一个用户定义的函数,用于检索查找表的查找值。通过使用此功能,SQL 代码更易于阅读和维护。
函数的主体类似于:
SELECT @result = LookupValue FROM LookupTable1 WHERE ID=@Lookup_ID and Language=@lang
RETURN @result
我想要的是能够将语言参数从函数中删除为某种静态变量,仅适用于当前连接/语句/命令,因此查询看起来像
SELECT .., GetLookupList1(lookup_ID), .. FROM TABLE