Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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
Tsql 同步父表和子表中的主键_Tsql - Fatal编程技术网

Tsql 同步父表和子表中的主键

Tsql 同步父表和子表中的主键,tsql,Tsql,我需要使两个不同表中的3列保持同步 MS SQL Server 2008 create table a( id int IDENTITY(1,1), name1 nvarchar(255), name2 nvarchar(255), date1 date default null, date2 date default null, ... CONSTRAINT pk primary key (id), CONSTRA

我需要使两个不同表中的3列保持同步

MS SQL Server 2008

create table a(
     id int IDENTITY(1,1),
     name1 nvarchar(255),
     name2 nvarchar(255),
     date1 date default null,
     date2 date default null,
     ...
     CONSTRAINT pk primary key (id),
     CONSTRAINT uniqueNames UNIQUE (name1,name2))

我希望创建另一个表,该表将复制第二个表中的前3列,并使它们保持最新插入、删除和更新。我正在研究触发器,但一致的意见似乎是,如果我同时插入或更新多行,这将无法正确执行。关于如何实现这一点,您有什么想法吗?

理想情况下,您可以通过将复制的字段移动到另一个表中并通过外键引用它们来规范化数据


然而,触发器也可以用来解决这个问题。请看这里:

您正在使用哪个数据库?为什么?只需创建一个视图创建视图表,从表x中选择id、name1、name2;将为您提供完全相同的信息,冗余更少。我需要在第二个表中为不同的任务添加额外的日期列。。。这在功能上仍然取决于表_x.id。这对我来说毫无意义。也许,我把事情弄得比实际情况复杂了一点。我的表a大约有140列,有各种nvarchar和日期。我想创建两个较小的表。只用一张大桌子会更好吗?或者使用2只传输id列?谢谢Gary,这肯定是我问题的答案。正如wildplasser和你指出的,看起来我问错了问题。