Update是T-sql中再简易但是的句子了,update table set column=expression [where condition],大家都是采用。但update的使用方法不但在此,真实在开发设计的情况下,灵便适当地应用update能够做到事倍功半的实际效果。 假设有表Table1(a,b,c)和Table2(a,c),如今Table1中一些纪录字段名c为null,要依据字段名a在Table2中搜索,取下字段名a相同的字段名c的值来升级Table1。一种基本的构思,根据游标解析xmlTable1中字段名c为null的全部纪录,在循环系统身体搜索Table2并开展升级,即用游标Cursor的方式。检测sql句子以下: --1.建立检测表 create TABLE Table1 a varchar(10), b varchar(10), c varchar(10), CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED a ASC ) ON [PRIMARY] create TABLE Table2 a varchar(10), c varchar(10), CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED a ASC ) ON [PRIMARY] --2.建立检测数据信息 Insert into Table1 values('赵','asds',null) Insert into Table1 values('钱','asds','100') Insert into Table1 values('孙','asds','80') Insert into Table1 values('李','asds',null) Insert into Table2 values('赵','90') Insert into Table2 values('钱','100') Insert into Table2 values('孙','80') Insert into Table2 values('李','95') select * from Table1 --3.根据游标方法升级 declare @name varchar(10) declare @score varchar(10) declare mycursor cursor for select a from Table1 where c is null open mycursor fetch next from mycursor into @name while(@@fetch_status = 0) BEGIN select @score=c from Table2 where a=@name update Table1 set c = @score where a = @name fetch next from mycursor into @name close mycursor deallocate mycursor --4.显示信息升级后的結果 select * from Table1 --5.删掉检测表 drop TABLE Table1 drop TABLE Table2 尽管用游标能够完成,但编码看上去很繁杂,实际上用Update依据子关系来升级要是一条句子便可以拿下了,检测编码以下: --1.建立检测表 create TABLE Table1 a varchar(10), b varchar(10), c varchar(10), CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED a ASC ) ON [PRIMARY] create TABLE Table2 a varchar(10), c varchar(10), CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED a ASC ) ON [PRIMARY] --2.建立检测数据信息 Insert into Table1 values('赵','asds',null) Insert into Table1 values('钱','asds','100') Insert into Table1 values('孙','asds','80') Insert into Table1 values('李','asds',null) Insert into Table2 values('赵','90') Insert into Table2 values('钱','100') Insert into Table2 values('孙','80') Insert into Table2 values('李','95') select * from Table1 --3.根据Update方法升级 Update Table1 set c = (select c from Table2 where a = Table1.a) where c is null --4.显示信息升级后的結果 select * from Table1 --5.删掉检测表 drop TABLE Table1 drop TABLE Table2 参照材料:或许是被忽视的update句子,update 子查寻 |