[新手求助]SQL里如何设置一个表的某列来自另一个表的某列?

chunhong89 2011-02-19 03:23:17
比如:我有一个员工登录表和一个员工信息表。2个表里都有列:userName,我想实现,当我在员工登录表里添加一条记录时(如,添加userName为jimmy的员工的登录信息),员工信息表就自动对应地生成一条默认记录(自动添加userName为jimmy的记录)?
请问如何解决?
要用到哪里知识?
...全文
211 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chunhong89 2011-03-01
  • 打赏
  • 举报
回复
谢谢你们啊,已经学了触发器。谢谢各位
小case 2011-02-19
  • 打赏
  • 举报
回复
sql 2005打开SQL Server Management Studio Express(sql2000好像加企业管理器吧),打开数据库,就可以看到每个表下面都有触发器等,右键点击“新建。。”就行了,会有个很规范的例子给你修改
你也可以直接这样写,
USE [你的数据库名]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[自定义名字] ON [dbo].[表1]
FOR INSERT, UPDATE, DELETE
AS
INSERT 表2(这一句你参考SQL2005的INSERT语句帮助写就行,你再修改下DELETE,UPDATE的情况
或两个表建立关联就不用写DELETE,UPDATE语句
mark4ever 2011-02-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chuzhaowei 的回复:]

实现方法好几种,用触发器、在程序中实现都可以。

如果在程序中实现,最好确保两条insert语句在用一个事务中执行。
[/Quote]

同意。不过建议楼主还是使用触发器,因为不光是插入的问题。
当你在删除的时候,也要有触发器进行对应的删除,否则另一张表就会出现孤儿数据。
触发器很简单的,建议楼主学一下。
chuzhaowei 2011-02-19
  • 打赏
  • 举报
回复
实现方法好几种,用触发器、在程序中实现都可以。

如果在程序中实现,最好确保两条insert语句在用一个事务中执行。
笨妞妞 2011-02-19
  • 打赏
  • 举报
回复
你可以在给员工登录表中增加完记录后,通过ExecuteScalar()获得表的标识(通常都是自增字段),然后把这个字段再通过ExecuteNonQuery()插入到员工信息表中。

至于触发器,个人不是很了解
wuyq11 2011-02-19
  • 打赏
  • 举报
回复
trigger for insert
create trigger tr_T1_Insert
on T1
for Insert
as

insert T3(列1,列2)
select i.列1,T2.列2 from inserted i,T2

go
set @id=convert(varchar(8),getdate(),112)+'-'+@class+'-001'

bdmh 2011-02-19
  • 打赏
  • 举报
回复
可以建立触发器,也可以在代码中同时增加记录
wantalcs 2011-02-19
  • 打赏
  • 举报
回复
在员工登录表上建立一个触发器。

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧