小编Dja*_*ngo的帖子

如何根据SQL Server 2008中另一个表中的值编写更新触发器来更新当前表?

我有两个表,Table_A和Table_B.Table_A与Table_B具有一对多的关系.

在子表(Table_B)中插入记录后,我想使用触发器从父表(Table_A)中的字段中获取值,并更新Table_B中当前插入的记录.

表-A

PK|EmpID|MemID|Firstname|Lastname
----------------------------------
1 |1234 |AB123|John     | Doe
2 |5678 |CD456|Jane     | Smith
Run Code Online (Sandbox Code Playgroud)

表-B

PK|EmpID|MemID|Description
---------------------
1 |1234 |NULL |Finance
2 |1234 |NULL |IT
3 |5678 |NULL |Finance 
4 |5678 |NULL |Management
Run Code Online (Sandbox Code Playgroud)

触发器应该从Table_A中获取MemID值,并在Table_B中更新它的相应值,其中[Table_A].[EmpID] = [Table_B].[EmpID].当然,在表_B中的4个插入后,结果应如下所示:

PK|EmpID|MemID|Description
---------------------
1 |1234 |AB123|Finance
2 |1234 |AB123|IT
3 |5678 |CD456|Finance 
4 |5678 |CD456|Management
Run Code Online (Sandbox Code Playgroud)

我广泛搜索了其他技术站点,但似乎找不到这个特定场景.作为一个绝望的举动,我已经注册到这个网站,这将是我的第一篇求助信.

以下是我尝试在MS SQL Server 2008 R2中创建第一个触发器的徒劳尝试.

CREATE TRIGGER dbo.trgInsMemID
ON dbo.Table_B
AFTER INSERT
AS
    BEGIN
        UPDATE dbo.Table_B
            SET MemID = 
                (SELECT MemID 
                FROM inserted i 
                JOIN dbo.Table_A c ON …
Run Code Online (Sandbox Code Playgroud)

sql sql-server triggers sql-server-2008

5
推荐指数
1
解决办法
2572
查看次数

从2D变体写入第二维到Range,而不在VBA中循环

我有一个变量变量,并将以下范围值传递给它.

Option Base 1
Dim varEmployees As Variant

varEmployees = Range("A1:B5").Value
Run Code Online (Sandbox Code Playgroud)

此2D变体现在在第一维中具有雇员ID,在第二维中具有雇员名称.所以我们得到类似的东西.

varEmployees(1,1) = 1234    varEmployees(1,2) = John Doe
varEmployees(2,1) = 5678    varEmployees(2,2) = Jane Smith
varEmployees(3,1) = 9012    varEmployees(3,2) = Mary Major
varEmployees(4,1) = 3456    varEmployees(4,2) = Judy Stiles
varEmployees(5,1) = 7890    varEmployees(5,2) = Richard Miles
Run Code Online (Sandbox Code Playgroud)

我想在不使用循环的情况下将第二维仅写回范围但是当我使用以下代码时...

Range("D1:D5") = varEmployees
Run Code Online (Sandbox Code Playgroud)

我只得到实际结果下显示的第一维,但我想要的是我想要的结果(仅第二维).

Actual Results       Desired Results
--------------       ---------------
    1234             John Doe
    5678             Jane Smith
    9012             Mary Major
    3456             Judy Stiles
    7890             Richard Miles
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,或者有关于我不知道的变体数组的规则.

excel vba range variants

3
推荐指数
1
解决办法
1240
查看次数

标签 统计

excel ×1

range ×1

sql ×1

sql-server ×1

sql-server-2008 ×1

triggers ×1

variants ×1

vba ×1