新手问题,在线等
初学SQL遇到一些问题,请大家赐教,如果问题太简单,请大家别笑. 
 问题一: 
 如果让2个表的数据联系起来,比如说 
 A表里有 
 姓名      年龄   编号   成绩 
    张            18      001         90 
    李            20      002         80 
 B表里有 
 编号      成绩 
 001         90 
 002         80 
 现在修改B表里的编号或者成绩,A表也跟着修改,这样的应该怎么做?     
 问题二: 
 一个存储过程 
 create   proc   工资查询   @职员姓名   char(10)= ' ',@日期   char(10)= ' ' 
 as 
 begin 
 	if   @职员姓名= ' '   and   @日期= ' ' 
 	begin 
 		select   职员信息表.职员姓名,工资发放历史表.*   from   职员信息表   inner   join   工资发放历史表   on   职员信息表.职员编号=工资发放历史表.职员编号 
 		return 
 	end 
 	else 
 	if   @职员姓名!= ' '   and   @日期= ' ' 
 	begin 
 		select   职员信息表.职员姓名,工资发放历史表.*   from   职员信息表   inner   join   工资发放历史表   on   职员信息表.职员编号=工资发放历史表.职员编号   and   职员信息表.职员姓名=@职员姓名 
 		return 
 	end 
 	else 
 	if   @职员姓名= ' '   and   @日期!= ' ' 
 	begin 
 		select   职员信息表.职员姓名,工资发放历史表.*   from   职员信息表   inner   join   工资发放历史表   on   职员信息表.职员编号=工资发放历史表.职员编号   and   工资发放历史表.日期=@日期 
 		return 
 	end 
 	else 
 	begin 
 		select   职员信息表.职员姓名,工资发放历史表.*   from   职员信息表   inner   join   工资发放历史表   on   职员信息表.职员编号=工资发放历史表.职员编号   and   工资发放历史表.日期=@日期   and   职员信息表.职员姓名=@职员姓名 
 		return 
 	end 
 end 
 我在C#里连接操作数据库 
 	SqlConnection   conn=new   SqlConnection( "server=.;database=人力资源管理系统;uid=sa;pwd=; "); 
 			try 
 			{ 
 				conn.Open(); 
 				SqlCommand   comm=new   SqlCommand( "工资查询 ",conn); 
 				comm.CommandType=CommandType.StoredProcedure; 
 				comm.Parameters.Add( "@职员姓名 ",textBox1.Text); 
 				comm.Parameters.Add( "@日期 ",textBox2.Text); 
 				SqlDataAdapter   sda=new   SqlDataAdapter(comm); 
 				DataSet   ds=new   DataSet(); 
 				sda.Fill(ds); 
 				dataGrid1.DataSource=ds.Tables[ "工资发放 "].DefaultView; 
 			} 
 			catch(Exception   M) 
 			{MessageBox.Show(M.Message);}     
 他却不行,请大家帮帮,先谢谢大家了,十万火急,在线等 
------解决方案--------------------dataGrid1.DataSource=ds.Tables[ "工资发放 "].DefaultView; 
 改为 
 dataGrid1.DataSource=ds.Tables[0].DefaultView; 
 试试
------解决方案--------------------alter table B表 add constraint B表_con foreign key(编号)references A表(编号)  on update cascade 
 楼主的问题添加一个级联更新就行了
------解决方案--------------------去掉两个else 
 create proc 工资查询 @职员姓名 char(10)= ' ',@日期 char(10)= ' ' 
 as 
 begin 
 	if @职员姓名= ' ' and @日期= ' ' 
 	begin 
 		select 职员信息表.职员姓名,工资发放历史表.* from 职员信息表 inner join 工资发放历史表 on 职员信息表.职员编号=工资发放历史表.职员编号 
 		return 
 	end 
 	else--去掉 
 	if @职员姓名!= ' ' and @日期= ' ' 
 	begin 
 		select 职员信息表.职员姓名,工资发放历史表.* from 职员信息表 inner join 工资发放历史表 on 职员信息表.职员编号=工资发放历史表.职员编号 and 职员信息表.职员姓名=@职员姓名 
 		return 
 	end 
 	else--去掉 
 	if @职员姓名= ' ' and @日期!= ' ' 
 	begin 
 		select 职员信息表.职员姓名,工资发放历史表.* from 职员信息表 inner join 工资发放历史表 on 职员信息表.职员编号=工资发放历史表.职员编号 and 工资发放历史表.日期=@日期 
 		return 
 	end 
 	else 
 	begin 
 		select 职员信息表.职员姓名,工资发放历史表.* from 职员信息表 inner join 工资发放历史表 on 职员信息表.职员编号=工资发放历史表.职员编号 an