SQL Server:为多个表

时间:2017-04-17 12:18:40

标签: sql sql-server stored-procedures triggers

我必须为地址插入创建触发器或存储过程。此地址插入可以在多个表上。我对触发器和存储过程了解不多,所以我可以使用一些帮助。

请参阅此处了解数据库架构:

Database LRS

这是荷兰语,所以这里有一些翻译:

  • 邮政编码=邮政编码/邮政编码
  • Huisnummer = Housenumber
  • Plaatsnaam =城市名称
  • Straat = Street
  • Provincie =州
  • Bedrijfsnaam =公司名称
  • Afdelingsnaam =部门名称

我必须创建一个存储过程/触发器,限制在表ADDRESSSTREETPARTCITY中插入/更新。只有在下表中插入/更新时才能插入/更新这些表:COMPANYDEPARTMENTDEPARTMENTVISITINGADDRESSCUSTOMEREMPLOYEE

我也不知道如何限制这一点。

由于当前的外键结构(我无法更改),在ADRESSSTREETPARTCITY表中必须有匹配的地址才能在下表中进行插入:COMPANY, DEPARTMENT, DEPARTMENTVISITINGADDRESS, CUSTOMER, EMPLOYEE

所以结构必须是这样的:用户在下表中插入:COMPANY, DEPARTMENT, DEPARTMENTVISITINGADDRESS, CUSTOMER, EMPLOYEE。但是在插入其中一个表之前,必须首先在表CITY中插入插入(仅当城市尚未存在时),STREETPART和{{1} }。

首先必须检查插入的邮政编码+ housenumber是否有效。我有一个外部邮政编码数据库,如果组合邮政编码+ housenumber有效,可以检查。下面的代码代表:

ADRESS

如果组合邮政编码+ housenumber有效,必须检查城市是否已经在CITY表中。如果是,则必须将与邮政编码匹配的州名和城市插入到CITY表中(城市名称和州名称也在外部邮政编码数据库中)。之后,必须在STREETPART表中插入一个插入(邮政编码的街道名称也在外部邮政编码数据库中)。之后,必须在ADRESS表中进行插入。最后一步是在原始插入表格中插入:公司,部门,部门访问地址,客户或雇员。

感谢您的帮助!

0 个答案:

没有答案