Sql server 表关系,SQL 2005
好的,我有一个问题,可能很简单,但我找不到解决办法 我有三张桌子和一个主要的tblSql server 表关系,SQL 2005,sql-server,sql-server-2005,database-design,Sql Server,Sql Server 2005,Database Design,好的,我有一个问题,可能很简单,但我找不到解决办法 我有三张桌子和一个主要的tbl tbl_1 - tbl_1Name_id tbl_2- tbl_2Name_id tbl_3 - tbl_3Name_id 我想将Name_id字段连接到下面的主tbl字段 main_tbl ___________ tbl_1Name_id tbl_2Name_id tbl_3Name_id Main-tbl为这些字段提供了一个唯一的键,在另一个表中,这些字段是非空的普通字段 我想做的是,在tbl
tbl_1 - tbl_1Name_id
tbl_2- tbl_2Name_id
tbl_3 - tbl_3Name_id
我想将Name_id字段连接到下面的主tbl字段
main_tbl
___________
tbl_1Name_id
tbl_2Name_id
tbl_3Name_id
Main-tbl为这些字段提供了一个唯一的键,在另一个表中,这些字段是非空的普通字段
我想做的是,在tbl_1、tbl_2或tbl_3中输入记录时,主表中的值会以该字段或其他方式显示。
我也有多对一的关系,当然一是主要的tbl
我有一种感觉,这应该是非常简单的,但不能让它工作。看看。这将允许您在将记录插入其中任何一个表时执行操作
如果您提供更多信息,如:
- 插入的示例
- 您想要的结果更改 作为插入的结果查看
Employee
--------
EmployeeId
fName
lName
EmployeeMedicalVisit
--------------------
VisitId
EmployeeId
Date
Cost
一些重要的事情:
SELECT e.fName, e.lName
FROM Employee e
INNER JOIN EmployeeMedicalVisit as emv
ON e.EployeeId = emv.EmployeeId
希望这有帮助 以下是一个示例触发器,它可能会显示您需要具备的功能:
Create trigger mytabletrigger ON mytable
For INSERT
AS
INSERT MYOTHERTABLE (MytableId, insertdate)
select mytableid, getdate() from inserted
在触发器中,有两个可用的PSUEDOTABLE,插入和删除。插入的表包含插入到您有触发器的表中的数据,包括任何自动生成的id。假设您不同时需要其他数据,这就是将数据获取到其他表的方式。您可以从系统存储的处理器或与其他表的联接中获取其他数据,但不能从应用程序中的窗体获取
如果确实需要触发器中不可用的其他数据(例如表单中的其他值),则需要编写一个存储过程来插入到一个表中,并通过输出子句或使用scope_identity()返回id值然后使用该数据为下一个表构建插入。谢谢Abe,我有一个主表,它有很多详细信息,每天都会使用,所以我计划在主表更新时为其他三个表创建一个id,以便在tbl1、tbl2或TBL3具有主tbl中的所有详细信息时连接记录…好的,只需添加,主tbl有更多字段…如fistname、last name、address、passport details等…加上字段tbl_1Name_id tbl_2Name_id tbl_3Name_id。在插入此字段的同时,我希望使用主tbl中的_id字段中的相同值更新tbl1、tbl2和tbl3。主tbl字段具有标识和增量。我重新设置ally需要在原始问题中添加一个用例。例如,插入SQL和它引起的表更改。好的,主表用于添加员工的详细信息,其他三个用于(比如)看病(医疗),这并不经常发生。因此,所有员工都在表格中,当访问发生时,我希望将该人员链接到医疗表格。也许我的方法从一开始就错了,但我愿意接受建议。当他们访问医生时,我希望主tbl中的最后、第一个字段和地址以及医疗tbl中的所有字段。谢谢t、 很抱歉,迟了回复,我会尝试一下,如果你也知道这一个,我如何才能准确地复制输入时的字段值(第一个表),到另一个字段,第二个表,它将是唯一的,这样我就可以将它们链接在一起