【问题标题】:How to insert two rows in one column with same id, different cultureId and in different Languages?如何在具有相同 id、不同cultureId 和不同语言的列中插入两行?
【发布时间】:2011-02-09 22:47:21
【问题描述】:

我有一张表 Culture、Company 和 CompaniesLocale。在 Culture 表中,我有 CultureId、CultureCode 和 DisplayName,在 Companies 中,我有 CompanyID、Name,在 CompaniesLocale 中,我有 CompanyID、CultureId、Name。我在文化表英语和德语中插入了语言。 现在,当我创建一家新公司时,我将如何将在 CompaniesLocale 中创建但以不同语言描述的相同名称插入到 CompaniesLocale 中(我选择德语,但我可能是西里尔文。我希望首先添加新公司到公司,然后在 CompaniesLocale 中使用相同的 COMpanyId 但该语言的正确 CultureId。 那可能吗?

【问题讨论】:

  • 这一切对我来说听起来都是合理和恰当的,我看不出问题所在。似乎这是顺序:1)使用公司的默认/本机名称插入公司表。 2) 插入 CompanyLocal 表,使用该文化的公司名称。有什么问题?
  • 是的,但我想知道怎么做?例如,我在 Companies 表中有以下数据:ID=1 Name= Microsoft AND ID=2 Name=Google,现在在我的 CompaniesLocale 表中我有 ID=1 CUltureID =1(用于英语) Name= Microsoft,我也是这个表我有相同的公司,但使用不同的语言,例如西里尔文 ID = 1 CultureID = 2(对于不同的语言或西里尔文),并且 NAME 应该是微软的西里尔文。我说清楚了吗?
  • 你的意思是,sql insert 语句是什么样的?
  • 是的,我需要 sql 插入脚本,这样我才能在 asp.net 中运行
  • 您能否使用 Ctrl+K 移动您的示例表和记录示例,以便我们看起来更清晰...

标签: sql culture


【解决方案1】:

类似的东西 插入 CompanyLocal(CompanyId, CultureId, Name) 值 (1, 1, 'spreken zie deutch')

【讨论】:

  • 好的,但是在 asp.net 中怎么样,例如,当我想创建一家新公司时,我是否必须制作两个文本框,或者您对此有什么想法吗?
  • 不...在任何应用程序中,您都会从 UI 收集一次值。然后它将保存在代码中的变量中。您可以多次使用同一个变量:例如,执行多个表插入。
【解决方案2】:

基本上,我可以看到两种方法。

  1. 两个插入。首先将具有基本语言环境名称的记录插入Company,获取新的CompanyID,然后使用获取的CompanyID 将其余名称插入CompanyLocale。这假设有一个触发器 ON Company FOR INSERT 将基本语言环境名称添加到 CompanyLocale

  2. 一个插入。将所有名称插入到 CompanyLocale 中,并带有空的 CompanyID 值。这也假设使用触发器,这次是ON CompanyLocale FOR INSERT。触发器将一条新记录插入Company,获取新的id 并为新插入的CompanyLocale 记录更新它。这还假定引用Company.ID 的外键列CompanyLocale.CompanyID 必须允许NULL 值。 (我认为第一种方法可以禁止获取 NULL。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多