例如: 在表1中原来有一个字段A的,表中有5条记录,我向在表中添加字段B并添加数据到字段B中,而记录应该还是5条,但我在写了下面的代码后,发现字段是添加了,但是变成了10条记录前5条只有A有数据B是空的,后5条只有B有数据A是空的,请高手们指教,谢谢!
For ZDC = 1 To CK //循环,把出现在列表中的每一个字段在数据表中的数据都导入到临时表TMP中
ZD = ListX.List(ZDC - 1)
stRopen = "select " & ZD & " into TMP from " & rst_table.Fields("name") & "
stInser = "insert into TMP (" & ZD & ") select " & ZD & " from " & rst_table.Fields("name") & ""
stAlt = "alter table TMP ADD " & ZD & " varchar(100)null;"
rSt.Open "select * from dbo.sysobjects where name='TMP'", cNn, adOpenStatic, adLockReadOnly
If rSt.EOF = True Then
rstmp.Open stRopen, cNn, adOpenStatic, adLockReadOnly//创建一个临时表TMP并从表(rst_table.Fields("name"))导入相应数据
rSt.Close
Else
rstmp.Open stAlt, cNn, adOpenStatic, adLockReadOnly //添加字段
rstmp.Open stInser, cNn, adOpenStatic, adLockReadOnly//为字段添加数据
End If
Next ZDC
13 个解决方案
#1
添加B列数据时,直接Update就行,不要使用Insert插入!
#2
alter table TableName ADD ColumnName varchar(100) null
Update TableName Set ColumnName ='XXX'
#3
高手,不用insert不行,如果用select系统会提示TMP表已存在,所有迫不得已才用insert为字段B添加数据
#4
不太明白什么意思啊!
#5
insert into a(a,b,c) select d,e,f from b
前后字段一一对应试试
#6
我意思是 A字段是用select into的语句来导入数据的,而B字段如果同样用select into,运行时就会出错,因此我只能用insert into来为字段B添加数据
或者,高手指点一下用什么语句为字段B添加数据,数据源是宁外一个表"&rst_table.Fields("name")&"
#7
高手,我代码里的字段是变量来,无法实现列出
#8
HELP ME
#9
??
#10
高手们去哪喇?
#11
stInser = "update TMP set " & ZD & " = (select " & ZD & " from " & rst_table.Fields("name") & ")"
#12
结帖率:
0.00% 影响大家的回答积极性
#13
写法很混乱
#1
添加B列数据时,直接Update就行,不要使用Insert插入!
#2
alter table TableName ADD ColumnName varchar(100) null
Update TableName Set ColumnName ='XXX'
#3
高手,不用insert不行,如果用select系统会提示TMP表已存在,所有迫不得已才用insert为字段B添加数据
#4
不太明白什么意思啊!
#5
insert into a(a,b,c) select d,e,f from b
前后字段一一对应试试
#6
我意思是 A字段是用select into的语句来导入数据的,而B字段如果同样用select into,运行时就会出错,因此我只能用insert into来为字段B添加数据
或者,高手指点一下用什么语句为字段B添加数据,数据源是宁外一个表"&rst_table.Fields("name")&"
#7
高手,我代码里的字段是变量来,无法实现列出
#8
HELP ME
#9
??
#10
高手们去哪喇?
#11
stInser = "update TMP set " & ZD & " = (select " & ZD & " from " & rst_table.Fields("name") & ")"
#12
结帖率:
0.00% 影响大家的回答积极性
#13
写法很混乱