SQL同在一个表的一字段等一另一字段的语句怎么写
两字段同在一表。让A的值等于B的值,两表的数据类型不一样,不过对数值没影响。以下这样写就提示错误,直接字段等于字段UPDATE表名SETA=BWHERE(C=C)正确的是...
两字段同在一表。让A的值等于B的值,两表的数据类型不一样,不过对数值没影响。以下这样写就提示错误,直接字段等于字段 UPDATE 表名SET A=B
WHERE (C=C) 正确的是怎么写呢???? 展开
WHERE (C=C) 正确的是怎么写呢???? 展开
2013-07-13
展开全部
这是一个查询所有表中所有字段里面包含“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')
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')
2013-07-13
展开全部
子查询写吧update 表名 set A=(select * from 表名 where C=C)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-13
展开全部
update 表名 set A=(select B from 表名 where C=C)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
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;
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询