使用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
答案 0 :(得分:2)
实际上不需要这是一个多行表值函数,它的表现比内联表值函数差得多。
您遇到的问题是您已将变量声明为varchar
,而不是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