读书人

创建字段后直接更新值会报错请大家

发布时间: 2012-03-23 12:06:21 作者: rapoo

创建字段后直接更新值,会报错,请大家进来帮帮忙。
sqlstr:='if not exists(select 1 from syscolumns a inner join sysobjects b on a.id=b.id where b.type=''U'' and b.name=''SpKuCun'' and a.name=''Spdj'') begin '+#13+
'alter table SpKuCun add spdj Money default 0 '+#13+
'update spKuCun set spdj=0 end';

with DataModule1.QrySearch do
begin
close;
sql.Clear;
sql.Text:=sqlstr;
ExecSQL;
end;

我上面的语句,是检查spKuCun 表中的spdj 字段是否存在,不存在则创建,然后更新所有值为0.

如果不加update spKuCun set spdj=0 这句,则正常,加了以后会报错,请问要怎么处理呢?

[解决办法]
为了实现目的可以用另外一种写法:
sqlstr:='if not exists(select 1 from syscolumns a inner join sysobjects b on a.id=b.id where b.type=''U'' and b.name=''SpKuCun'' and a.name=''Spdj'') begin '+#13+
'alter table SpKuCun add spdj Money default 0 with values';

读书人网 >.NET

热点推荐