declare @f_name varchar(50)
//给@f_name赋值
select @f_name=f_name from table_name
//执行拼接的sql语句
exec (N'select '+@f_name + N' from table_name')
//这3步必须一起执行
//在2008r2版本测试通过
//请采纳
update 表2set 字段2=(select 字段1 from 表1 where .....)
where (.....)
select 字段1 from 表1 where ..... 选出要添加的字段的内容
where (.....) 选出要添加的位置
在select 语句中赋值给用户变量的语法是 @ var_name := value ,这里的var_name 是变量名,value是正检索的值.1:变量可以用在以后语句中表达式可用的任何地方,例如where字句或者insert 语句中。
例如select @id :=cust_id from customers where cust_id='customer name';
delete from orders where cust_id = @id
2:变量的另一个用途是保存在一个auto_increment列的表中 插入新的一行后last_insert_id()的结果
select @last_id :=Last_INSERT_ID()
LAST_INSERT_ID()返回新的AUTO_INCREMENT列值,通过将其保存在变量中,你可以在之后的语句中多次引用该值。
即使发起其他的语句创建他们自身的atuo_increment值,从而改变了last_insert_id()返回的值
3:用户变量拥有单一的值,如果使用返回多行的语句来将值赋给一个变量,那么只有最后一行的值被赋给了该变量。
4:要将一个变量显示地设为一个特定值,使用set语句,set语法可以使用:=或者=来进行赋值
5:set也可以用来将一个select的结果赋给一个变量.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)