sql-server - 在sql表中存储不同的语言
问题描述
使用 SQL 服务器管理,为词汇表创建表,例如,您需要为不同的单词进行不同的翻译.. 我存储了 15 种不同的语言,如法语、意大利语、西班牙语.. 但是当将这些存储在表中时,它们的输出很好,但是在创建表值函数时,它们不能正确输出。我的返回是一个简单的选择,对于保加利亚语它只输出问号
有什么办法可以帮助sql管理更好地阅读这些语言?
感谢帮助
ALTER FUNCTION [dbo].SelectExportObject ( @TITLE NVARCHAR(MAX) )
RETURNS @Result TABLE
(
BG NVARCHAR(MAX) ,
CS NVARCHAR(MAX) ,
DE NVARCHAR(MAX) ,
EL NVARCHAR(MAX) ,
EN NVARCHAR(MAX) ,
ES NVARCHAR(MAX) ,
ET NVARCHAR(MAX) ,
FI NVARCHAR(MAX) ,
FR NVARCHAR(MAX) ,
GA NVARCHAR(MAX) ,
HU NVARCHAR(MAX) ,
IT NVARCHAR(MAX) ,
LT NVARCHAR(MAX)
)
AS
BEGIN
DECLARE @BG VARCHAR(MAX)
DECLARE @CS VARCHAR(MAX)
DECLARE @DE VARCHAR(MAX)
DECLARE @EL VARCHAR(MAX)
DECLARE @EN VARCHAR(MAX)
DECLARE @ES VARCHAR(MAX)
DECLARE @ET VARCHAR(MAX)
DECLARE @FI VARCHAR(MAX)
DECLARE @FR VARCHAR(MAX)
DECLARE @GA VARCHAR(MAX)
DECLARE @HU VARCHAR(MAX)
DECLARE @IT VARCHAR(MAX)
DECLARE @LT VARCHAR(MAX)
select @BG = c.BG,
@CS = c.CS,
@DE = c.DE,
@EL = c.EL,
@EN = c.EN,
@ES = c.ES,
@ET = c.ET,
@FI = c.FI,
@FR = c.FR,
@GA = c.GA,
@HU = c.HU,
@IT = c.IT,
@LT = c.LT
from tblTEST c where c.title = @Title
/* Populate the values of @Str1 and @Str2 how ever you need to */
INSERT INTO @Result (BG,CS,DE,EL,EN,ES,ET,FI,FR,GA,HU,IT,LT)
VALUES (@BG,@CS,@DE,@EL,@EN,@ES,@ET,@FI,@FR,@GA,@HU,@IT,@LT)
RETURN;
END
解决方案
真的不需要这是一个多行表值函数,它的性能会比内联表值函数差得多。
您遇到的问题是您已将变量声明为 a varchar
,而不是 a nvarchar
,但是,如果我们将其更改为内联表值函数,则问题甚至不存在(因为这些变量消失了):
ALTER FUNCTION [dbo].SelectExportObject ( @Title nvarchar(MAX) )
RETURNS TABLE
AS
SELECT t.BG,
t.CS,
t.DE,
t.EL,
t.EN,
t.ES,
t.ET,
t.FI,
t.FR,
t.GA,
t.HU,
t.IT,
t.LT
FROM tblTEST t
WHERE t.title = @Title;
GO
推荐阅读
- reactjs - 在第一次渲染时对 localStorage 空数组和 null 做出反应
- java - 如何使标记在 Java 中遍历折线?
- google-apps-script - 错误 .getValues () is not a function Google Apps Script
- python - github上的混淆python代码,我怀疑是恶意代码
- numpy - 仅使用 Numpy 从头开始实现自我注意。如何处理具有 3-D 输入的批量数据?
- python - 有没有办法将此循环缩短为一行?
- flutter - 如何为 QuerySnapshot 提供初始数据
- r - 优化从点创建的多边形
- react-native - SectionList ReactNative 上的粘性标题
- excel - 记录对多个单元格的更改