SQL 服务器:为多租户默认条目插入触发器

SQL Server : Insert Trigger for Multi-Tenant Default Entries

我有 table 的产品供所有租户共享。但是,每个租户都可以对存储在 ProductRating table 中的每个产品拥有自己的评级。当新产品插入 Product table 时,我想要一个触发器为每个租户将默认评级插入每个插入的产品的 ProductRating table。

我认为这并不像我的大脑想象的那么难,但我就是做不到。

感谢任何帮助。

为简单起见:

|-----------------------|
|       Tenant          |
|-----------------------|
| TenantId | TenantName |
|-----------------------|

|--------------------------|
|         Product          |
|--------------------------|
| Product ID | ProductName |
|--------------------------|

|-------------------------------|
|          ProductRating        |
|-------------------------------|
| TenantId | ProductId | Rating |
|-------------------------------|

J

您可能需要至少两个触发器 - 一个用于在添加产品时为所有现有租户提供默认评级,另一个用于在添加新租户时为所有现有租户提供默认评级产品。

CREATE TRIGGER DefaultRatingsByNewTenant ON Tenant
FOR INSERT

AS

Begin

    INSERT into ProductRating(TenantID, ProductID, Rating)

    SELECT
        i.TenantID
        , p.ProductID
        , 5 as defaultRating
    FROM
        inserted i
        cross join Product p

end

另一个很容易从那里算出来...

CREATE TRIGGER DefaultRatingsByNewProduct ON Product
FOR INSERT

AS

Begin

    INSERT into ProductRating(TenantID, ProductID, Rating)

    SELECT
        t.TenantID
        , i.ProductID
        , 5 as defaultRating
    FROM
        inserted i
        cross join tenant t

end