代码
create table ExampleTable
(
Name varchar(500)
CultureCode(5)
)
insert into ExampleTable values('Dit is een test', 'nl-NL')
insert into ExampleTable values('This is a test', 'en-GB')
insert into ExampleTable values('Ceci est un test', 'fr-FR')
insert into ExampleTable values('Dies ist ein Test', 'de-DE')
create procedure GetNameByCultures
(
@CultureCodes varchar(250)
)
as
begin
//Get ExampleTable items according to the culture codes stated in @CultureCodes
end
-例子:
CREATE TYPE StringListType AS TABLE
(
[str] varchar(5) NULL
)
我正在使用 MS SQL 2012 V11.0.2100.60
情况
我正在尝试找到提取标签的最佳方法(性能方面)。我想到但尚未测试的方法是:
- 创建如上所示的用户定义表类型。
好处:我知道它在数据库上几乎没有性能。
缺点:我必须向存储过程添加另一个参数。
- 创建一个按字符分割字符串的函数:','
缺点:我知道在 SQL 中使用“Right”、“Left”、“Like”和其他 varchar 转换/编辑属性很慢
UpSide:我可以将处理过程保存在数据库中。
在当前情况下,我只在用户定义的表类型中发送一个文化代码。因此,无法在此 UDTT 中添加文化代码,因为您无法将 UDTT 添加到 UDTT。我唯一的选择是向存储过程添加另一个参数,这应该不是什么大问题……但我们希望只保留一个参数。
有没有人碰巧知道另一种(更好的?)方法,还是我应该使用其中一种?