MSSQL 的跨语言翻译之路

1. MSSQL 的跨语言功能简介

从 SQL Server 2019 版本开始,MSSQL 的跨语言翻译功能正式推出,这意味着开发人员不必再将数据库数据导出到其他翻译软件中进行翻译,可以直接在数据库中进行跨语言翻译。

MSSQL 的跨语言翻译功能是基于 Azure Cognitive Services 中的 Translator Text API 技术实现的。通过在 SQL Server 实例上启用此功能,开发人员可以充分利用 Azure Cognitive Services 中的 AI 翻译模型,这些模型能够提供高度准确的跨语言翻译服务, 支持超过 60 种语言的互译。

2. 如何启用 MSSQL 的跨语言功能?

启用 MSSQL 跨语言功能非常简单,只需在 SQL Server 实例上执行以下 T-SQL 语句:

sp_configure 'show advanced options', 1;

GO

RECONFIGURE;

GO

sp_configure 'polybase enabled', 1;

GO

RECONFIGURE;

GO

启用 PolyBase 后,我们就可以在数据库表中添加 TRANSLATE 约束。接下来,我们需要在数据库中建立一个 Azure 资源,并与 SQL Server 实例进行链接。建立 Azure 资源后,需要在数据库中创建外部表来引用该资源,外部表定义如下:

CREATE EXTERNAL TABLE [dbo].[MyExternalTable](

[Id] [int] NOT NULL,

[ProductDescription] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

[ProductDescriptionTranslated] varchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL)

WITH (DATA_SOURCE = TranslateDataSource);

3. 使用 MSSQL 的跨语言功能实现数据翻译

3.1 准备数据

这里我们假设有一个产品表 Product,其中一列为 ProductDescription,我们需要对该列中的数据进行英文到中文的翻译。

3.2 创建 TRANSLATE 约束

创建 TRANSLATE 约束的 T-SQL 语句如下:

ALTER TABLE Product

ADD CONSTRAINT CK_Product_ProductDescription_Translated

CHECK (ProductDescriptionTranslated = TRANSLATE(ProductDescription))

WITH Translation_Service = 'MyTranslationService';

该约束可以保证数据库中的数据始终是经过翻译的。若 `ProductDescription` 修改,则 `ProductDescriptionTranslated` 列也应当随之更新。为了实现这个目标,我们需要编写一个触发器,其代码如下:

CREATE TRIGGER tr_ProductUpdateTranslation

ON Product

AFTER INSERT, UPDATE, DELETE

AS

BEGIN

IF EXISTS (SELECT * FROM inserted) OR EXISTS (SELECT * FROM deleted)

BEGIN

MERGE INTO dbo.MyExternalTable AS T

USING (SELECT Id, ProductDescription FROM inserted) AS S

ON T.Id = S.Id

WHEN MATCHED AND UPDATE(ProductDescription) THEN

UPDATE SET T.ProductDescriptionTranslated = TRANSLATE(S.ProductDescription)

WHEN NOT MATCHED BY TARGET AND INSERTING THEN

INSERT (Id, ProductDescription, ProductDescriptionTranslated)

VALUES (S.Id, S.ProductDescription, TRANSLATE(S.ProductDescription));

END

END

该触发器可保证每当 Product 表中有数据被修改时,MyExternalTable 外部表的翻译列也会随之更新。

4. 总结

本文介绍了 MSSQL 的跨语言翻译功能,从启用此功能、创建约束和外部表、使用触发器实现翻译更新等方面给出了详细的操作步骤。跨语言翻译功能为开发人员提供了新的思路和工具,使得开发人员能够更加高效地进行多语言应用的开发。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签