Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 表关系,SQL 2005_Sql Server_Sql Server 2005_Database Design - Fatal编程技术网

Sql server 表关系,SQL 2005

Sql 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

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
一些重要的事情:

  • 请注意,我没有进入 员工姓名进入 EmployeeMedicalVisit表,仅显示EmployeeId。这 有助于维护数据完整性和 遵守
  • 你应该仔细阅读,然后 范式。这是一个非常重要的问题 主题,它将使你的生活 如果你能抓住它们就容易了
  • 使用上述结构,当员工访问医疗办公室时,您将在EmployeeMedicalVisit中插入一个记录。要选择员工的所有就诊,请使用以下查询:

    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、 很抱歉,迟了回复,我会尝试一下,如果你也知道这一个,我如何才能准确地复制输入时的字段值(第一个表),到另一个字段,第二个表,它将是唯一的,这样我就可以将它们链接在一起