请问sqlserver中的两个表怎么进行关联

有两个表,一个表是负责注册的,当注册一个用户时会生成一条记录,每条记录有一个序列号,我想要另外的一个表跟着这个表同时生成记录,有相同的序列号,而又不想两表合并,怎么实现啊?请指教
能用外键实现吗?

外键是用来实现“引用完整性”的,说白了就是一种约束,不能用来传值。
可以选择触发器或存储过程。

如果两个表字段相同可以用触发器:
CREATE TRIGGER trigger_AToB on A
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO A(a,b,c) SELECT a,b,c FROM inserted
INSERT INTO B(a,b,c) SELECT a,b,c FROM inserted
END
GO
INSERT INTO a(a,b,c)VALUES('aaa','aaa','aaa')

在查询分析器里执行上面的语句后,向A表添加数据会同时向B表添加。触发器比较方便,缺点是,一旦B表被删除了,向A表添加数据会报错。

存储过程就比较自由了:
CREATE PROC proc_InsertAToB
@a VARCHAR(10),
@b VARCHAR(20),
@c VARCHAR(30)
as
INSERT INTO A(a,b,c)VALUES(@a,@b,@c)
INSERT INTO B(a,b,c)VALUES(@a,@b,@c)
表B的字段和表A不一样也没关系,需要的话,可以再根据需要向存储过程添加参数。
使用的时候不再用INSERT INTO了,用:
EXECUTE proc_InsertAToB 'aaa','aaa','aaa'就可以。
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-11-17
你是想得到 table2 的数据对吧?

你可以用视图来做
create view table1 as select id as ttid ,text1,text2 from table2

教程:

CREATE VIEW
名称
CREATE VIEW — 构建一个虚拟表(视图)

语法
CREATE VIEW view AS SELECT query
输入
view
所要创建的视图名称.
query
一个将为视图提供行和列的 SQL 查询.
请参阅 SELECT 语句获取有效参数的更多信息.

输出
CREATE
如果视图创建成功,返回此信息.
ERROR: Relation 'view' already exists
如果在数据库中已经存在所声明的视图.
NOTICE create: attribute named "column" has an unknown type

如果不声明,所创建的视图将有一个未知类型的字段.例如,下面命令返回一个警告:
CREATE VIEW vista AS SELECT 'Hello World'
然而下面命令将不出现警告:
CREATE VIEW vista AS SELECT text 'Hello World'
描述
CREATE VIEW 将定义一个表的视图.这个视图不是物理上实际存在(于磁盘)的.具体的说,自动生成一个改写索引规则的查询用以支持在视图上的检索.
注意
目前,视图是只读的.

使用 DROP VIEW 语句删除视图.

用法
创建一个由所有 Comedy (喜剧)电影组成的视图:
CREATE VIEW kinds AS
SELECT *
FROM films
WHERE kind = 'Comedy';

SELECT * FROM kinds;

code | title | did | date_prod | kind | len
-------+---------------------------+-----+------------+--------+-------
UA502 | Bananas | 105 | 1971-07-13 | Comedy | 01:22
C_701 | There's a Girl in my Soup | 107 | 1970-06-11 | Comedy | 01:36
(2 rows)
兼容性
SQL92
SQL92 为 CREATE VIEW 声明了一些附加的功能:
CREATE VIEW view [ column [, ...] ]
AS SELECT expression [ AS colname ] [, ...]
FROM table [ WHERE condition ]
[ WITH [ CASCADE | LOCAL ] CHECK OPTION ]
完整的SQL92命令可选的子句是:

CHECK OPTION
这个选项用于可更新视图.所有对视图的 INSERT 和 UPDATE 都要经过视图定义条件的校验.如果没有通过校验,更新将被拒绝.
LOCAL
对这个视图进行完整性检查.
CASCADE
对此视图和任何相关视图进行完整性检查.在既没有声明 CASCADE 也没有声名 LOCAL 时,假设为 CASCADE.
第2个回答  2007-07-25
CREATE TRIGGER studen
ON student_test //这个就是你注册那个表
FOR INSERT,update,delete
AS
insert into my_table (a,b) values (11,22) //这写你要关联的表的超做
GO本回答被提问者采纳
第3个回答  2007-07-25
一、用触发器,不过最好不要这么用,因为这样做会使得不好维护
二、两次分别插入到两个表,这样比较直观
第4个回答  2007-07-25
用触发器可以实现.
看一下联机丛书

请问sqlserver中的两个表怎么进行关联? 有两个表,一个表A,一个表B...
关联查询:select * from A ,B where A.name=B.name

请问sqlserver中的两个表怎么进行关联
可以选择触发器或存储过程。如果两个表字段相同可以用触发器:CREATE TRIGGER trigger_AToB on A INSTEAD OF INSERT AS BEGIN INSERT INTO A(a,b,c) SELECT a,b,c FROM inserted INSERT INTO B(a,b,c) SELECT a,b,c FROM inserted END GO INSERT INTO a(a,b,c)VALUES('aaa','aaa','a...

SQLSERVER:JOINs内连接、外连接、交叉连接
全外连接返回左表和右表中的所有行。如果行在另一边没有匹配,则对应列将为 NULL。SQL 查询结果 在这个例子中,全外连接返回了所有员工和所有部门的记录。交叉连接 (CROSS JOIN)交叉连接返回第一个表中的每一行与第二个表中的每一行的笛卡尔积。这意味着如果第一个表有 M 行,第二个表有 N 行...

sqlserver如何将两个表合并成一个表
1、首先在桌面上,点击“Management Studio”图标。2、之后在该界面中,点击左上角“新建查询”选项。3、接着在该界面中,输入将两个表合在一起的sql语句“select * from test1,test2;”。4、然后在该界面中,点击工具栏里的“运行三角形”图标。5、最后在该界面中,显示成功将两个表合在一起。

怎样用SQL语句合并两个表中的两个列
不知道你具体什么数据库,且表述不清楚,大概写下,,,sqlserver可以 select (a.names+ b.names) as typ from table1 as a ,table2 as b where a.关联字段=b.关联字段

sqlserver怎么显示表关系
sqlserver中表之间的关联关系是通过建立外键来实现的。创建SQL的主键和外键约束的方法:createtableStudent--建表格式:createtable自定义的表名(--字段名一般为有一定意义的英文StudentNamenvarchar(15),--格式:字段名类型()括号里面的是允许输入的长度StudentAgeint,--int型的后面不需要接长度StudentSex...

SQL Server中如何给两个表建立主外键约束
首先建立两张表:主表-MainTable和外键表-ForeignTable,主表的主键为ID,外键表中的字段TestID为外键,参照主表的ID。在外键表ForeignTable的设计视图中选中字段”TestID”,右键选择”关系”选项。在打开的外键关系窗体中点击“添加”按钮添加一个主外键约束关系FK_ForeignTable_ForeignTable。在外键关系...

C# 如何实现sqlserver 2008中两个数据库中两张表的关联查询。 如: s...
通过关联字段进行联接查询 select a.*,b.* from db1.tab1 a,db2.tab2 b where a.关联字段 = b.关联字段 比如说:db1.tab1表里有一个字段叫user_id主键,db2.tab2引用了db1.tab1的主键user_id 查询时就可以写 select a.*,b.* from db1.tab1 a,db2.tab2 b where a.user_id = ...

求问:SQL SERVER数据库中有两个结构一样表 h_order和order
结构一样可以使用sql语句 select h_order union all order 就可以。如果想把物理表合并到一起,可以在sql的对象资源管理器(2005,如果是2000则可以企业管理器)在对应的表上点右键,选择导入数据,之后根据提示一步步的选择对应的源表就好了

sqlserver中如何将一个表中的字段插入另一张表中
首先,两个表需要有关联字段 UPDATE [插入的表名] SET [字段]=B.[取数表字段]FROM [插入的表名] A,[取数表] B WHERE A.[关联字段]=B.[关联字段]

相似回答