日期:2014-05-20  浏览次数:20490 次

从表1向表2倒入一条数据时,想同时给表2的一些字段(表1没有)添指定的数据,如何实现?
比如  
表1   (ID,Fname,Fsex,Fage,FDeptID,State)
表2   (Sno,Fname,Fsex,Fage,FDeptID,JoinTime)

如何实现:
Insert   into   表2   (Sno,Fname,Fsex,Fage,FDeptID,JoinTime)   Select   Fname,Fsex,Fage,FDeptID   From   表1   where   ID=5

上面   Sno=myfunction(),   JoinTime=MyDate();   就是我通过其他的函数生成,能获得正确的植,现在是如何同时插入的问题。


谢谢大家

------解决方案--------------------
Insert into 表2 (Sno,Fname,Fsex,Fage,FDeptID,JoinTime) Select Sno Fname,Fsex,Fage,FDeptID, 'JoinTime ' From 表1 where ID=5

Sno是具体的值,比如 111,JoinTime也是
------解决方案--------------------
是数据库函数可如下:
Insert into 表2 (Sno,Fname,Fsex,Fage,FDeptID,JoinTime) Select myfunction(), Fname,Fsex,Fage,FDeptID,MyDate() From 表1 where ID=5
------解决方案--------------------
set sql = "Insert into 表2 (Sno,Fname,Fsex,Fage,FDeptID,JoinTime) Select " +
' "+strCode+ " ' + "as sno ,Fname,Fsex,Fage,FDeptID,dt From 表1 where ID=5 " ;

cmd.ExecuteNonquery(sql);
------解决方案--------------------
同时插入表1、表2需要开事务判断:

1 开始事务
2 插入表1数据
3
string strSno = myfunction();
string strJoinTime = MyDate();

string strSql =
" Insert into 表2 ( Sno, Fname, Fsex, Fage, FDeptID, JoinTime ) " +
" Select " + strSno + " as Sno, Fname, Fsex, Fage, FDeptID " + strJoinTime + " as JoinTime " +
" From 表1 " +
" Where ID = 5 "

执行以上插入SQL
4 成功,提交食物,否则,回归事务