SQL同在一个表的一字段等一另一字段的语句怎么写

两字段同在一表。让A的值等于B的值,两表的数据类型不一样,不过对数值没影响。以下这样写就提示错误,直接字段等于字段 UPDATE 表名SET A=B
WHERE (C=C) 正确的是怎么写呢????

这是一个查询所有表中所有字段里面包含“a”的语句,你改一下,将执行结果变成一个动态sql,就可以用了。SELECT a.name AS columnname,object_name(a.id)AS tablename INTO t FROM syscolumns a,sysobjects b,systypes cWHERE a.id=b.id AND a.xtype=c.xtypeAND b.xtype='u'AND c.name IN('varchar','nvarchar','char','nchar','text','ntext')AND object_name(a.id)<>'t'go
CREATE FUNCTION udf_genSQL(@tableName varchar(1000),@keyword varchar(1000))returns varchar(8000)ASbegindeclare @sql varchar(8000)SET @sql='select * from '+@tableName +' where 1=1 'SELECT @sql=@sql+' or '+columnname +' like ''%'+@keyword+'%''' FROM tWHERE tablename=@tablenameRETURN @sqlendgo
SELECT dbo.udf_genSQL(tableName,'a') FROM t GROUP BY tablenameDROP TABLE tDROP FUNCTION dbo.udf_genSQL
回答人的补充 2009-11-14 11:47 如果你将第一部分改为下面的语句,可以查找出所有包含这三个字段之一的所有表和字段:SELECT a.name AS columnname,object_name(a.id)AS tablename FROM syscolumns a,
sysobjects b,
systypes c
WHERE a.id=b.id
AND a.xtype=c.xtype
AND b.xtype='u'
AND object_name(a.id)<>'t'
and (a.name = 'matid' or a.name ='ModelID' or a.name = 'ColorID')
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-13
子查询写吧update 表名 set A=(select * from 表名 where C=C)
第2个回答  2013-07-13
update 表名 set A=(select B from 表名 where C=C)
第3个回答  2013-07-13
declare @t table ( id int, a int, b nchar(5) )
insert @t
select 1, 123, 'x' union
select 2, 456, 'x' union
select 3, 789, 'x' union
select 4, 333, 'x'

select * from @t

update t1 set t1.b = t2.a from @t as t1 inner join @t as t2 on t1.id = t2.id;

select * from @t;

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网