我要用table3.name字段更新table1.name字段, table1.id 连接 table2.id, table2.name连接table3.name其中table3是变量,要用DECLARE @table3 varchar(50) 的形式。
解决方案 »
- 如何用SQL进行多表的查询
- 很弱的问题 不明白数据库
- 新手,求一存储过程,判断一个字段中的值,让数据存入不同的DATAGRID里...
- 字段拆分的问题
- 向大力请教关于定时数据同步
- 变量:'103,101,107' 与 表中一个字段 值'101, 102, 103, 107' 进行比较 取字段包含所有变量的记录 单条sql 语句怎么写? 分数不够再发!!!
- 一个表中有好多数据,我想从中选出一个内部为空的记录集
- 安装SQL SERVER 2000 问题,急.........
- 再问一个没人问过的问题:装过SQL server 服务器的和装过客户端程序的有什么不同?
- 通过BDE连接SQL Server数据库需要哪几个DLL?
- 怎样把sql转换成函数/存储过程,然后接受参数调用?
- sql serverl连接与服务问题
declare @str varchar(8000)
DECLARE @table3 varchar(50)
set @table3='table3'
set @str='update t1 set name=t3.name
from table1 t1 inner join table2 t2 on t1.id=t2.id
inner join ' +@table3+' t3 on t2.name=t3.name'
print @str
exec(@str)
update table1 set table1.name=table3.name from table1 join table2
on table1.id=table2.id join table3 on
table2.name=table3.name
t3.tName 也是变化的,这个不是一列,列名是t2.tName的列值!!比如t2
tId,tName
1, c1,
2, c2,
3, c1,
4, er,
....这个列值就是对应列3的列名,比如t3
tId, c1, c2, x4, er..........很多列,要用动态的
1, a, b, c, d
2, e, b2, c2, d
3, a2, bd, cr, dx
4, a, b, cx, d
...所以数据应该返回 a, b2, a2, d ,然后用这些值来更新Table1.name (table1.id = table2.id, table2.tId = table3.tId)