将一个表a的字段所有的内容复制到另一个表的字段(与a字段名相同)里
假设a表有name,age,score 三个字段。
如果发现b表里有a表的字段,则把a表里这个字段的内容来更新b表里与他相同字段的内容。
由于b表的字段名不确定,我不会写这个语句。
应当怎么办呢??
谢谢大家
假设a表有name,age,score 三个字段。
如果发现b表里有a表的字段,则把a表里这个字段的内容来更新b表里与他相同字段的内容。
由于b表的字段名不确定,我不会写这个语句。
应当怎么办呢??
谢谢大家
解决方案 »
- 如何在程序中重启(控制面板-管理工具-服务中的)服务?delphi
- 关于在delphi下服务程序的编写?
- 如何把加入stringlist中的文件名如1.txt、2.txt……10.txt生成自然数排序而不是1 10 100的这种排序结果
- 请问:如何防止QQ的捕捉屏幕来切程序界面...
- 不知道如何创建这个组件?就是增强TStatusBar的功能.
- 菜鸟问个问题:这个“Sender: TObject”究竟是干什么的?
- ADO安全连接SQLSERVER的端口问题
- 怎样写备份和恢复备份SQLServer数据库的语句?请举例。
- 急,DELPHI高手请进
- treeview.items.data所指向的变量在程序结束后会自动释放空间吗?
- 为什么对于数据类型变量只能在全局变量中这样赋值
- 表的问题
ADOQUERY1.EOF(a表)
begin
(储存过程变量):m_name,m_age,m_score
pare.m_name=adoquery1.fieldsvalue['name'].asstring;
.
.
.
调用储存过程
end;
至于储存乍写你就自已顶了!
a表的字段有name sno id course(有内容的)
b表的字段有name sno(空表)*/
/*创建测试数据
create table a (name varchar(20),sno int ,id int,course varchar(20))
go
insert into a select 'aa',1,1,'aaaa'
union select 6 'bb',2,2,'bbbb'
go
create table b (name varchar(20),sno int)
go
*/
--下面生成插入语句
declare @s varchar(8000)
declare @s1 varchar(8000)
set @s='insert into b('
set @s1='select 'select @s=@s+ b.name+',' from
(select c.name from syscolumns c inner join sysobjects o on c.id=o.id where o.name='a') a,
(select c.name from syscolumns c inner join sysobjects o on c.id=o.id where o.name='b') b
where a.name=b.nameselect @s1=@s1+ b.name+',' from
(select c.name from syscolumns c inner join sysobjects o on c.id=o.id where o.name='a') a,
(select c.name from syscolumns c inner join sysobjects o on c.id=o.id where o.name='b') b
where a.name=b.nameset @s=substring(@s,1,len(@s)-1)+') '
set @s1=substring(@s1,1,len(@s1)-1) +' from a'
print @s+@s1
--这里生成了插入语句
--insert into b(name,sno) select name,sno from a
exec(@s+@s1)
select * from b
go
drop table a
drop table b
/*现有两个表a表,b表
a表的字段有name sno id course(有内容的)
b表的字段有name sno(空表)*/
/*创建测试数据
create table a (name varchar(20),sno int ,id int,course varchar(20))
go
insert into a select 'aa',1,1,'aaaa'
union select 6 'bb',2,2,'bbbb'
go
create table b (name varchar(20),sno int)
go
*/
--下面生成插入语句
create proc pInsert
as
declare @s varchar(8000)
declare @s1 varchar(8000)
set @s='insert into b('
set @s1='select 'select @s=@s+ b.name+',' from
(select c.name from syscolumns c inner join sysobjects o on c.id=o.id where o.name='a') a,
(select c.name from syscolumns c inner join sysobjects o on c.id=o.id where o.name='b') b
where a.name=b.nameselect @s1=@s1+ b.name+',' from
(select c.name from syscolumns c inner join sysobjects o on c.id=o.id where o.name='a') a,
(select c.name from syscolumns c inner join sysobjects o on c.id=o.id where o.name='b') b
where a.name=b.nameset @s=substring(@s,1,len(@s)-1)+') '
set @s1=substring(@s1,1,len(@s1)-1) +' from a'
print @s+@s1
--这里生成了插入语句
--insert into b(name,sno) select name,sno from a
exec(@s+@s1)
select * from b
go