22,207
社区成员
发帖
与我相关
我的任务
分享
declare @科目 varchar(10);
declare @name varchar(10)
set @课目='A';
set @name='Tom';
exec('select '+@项目+' from tab1 where name ='+@name )
declare @项目 varchar(10);
declare @id varchar(10)
declare @sql Nvarchar(1000)
set @项目='A';
set @id=1;
exec('select '+@项目+' from tab where id ='+@id)
DECLARE @sql NVARCHAR(MAX),@set NVARCHAR(MAX),@where NVARCHAR(MAX)
SET @set=' A=A+3 '
SET @where=' [name]=''tom'' '
SET @sql='UPDATE tab1 SET '+@set + ' WHERE '+@where
EXEC (@sql)
if not object_id('tempdb..#tmp_data') is null
drop table #tmp_data
create table #tmp_data(
name varchar(10),
A int,
B int)
INSERT INTO #tmp_data
Select 'jack',1,1 union
Select 'jason',2,3 union
Select 'tom',4,6
DECLARE @name varchar(10)
SET @name='Tom'
DECLARE @sql nvarchar(200)
SET @sql='UPDATE #Tmp_data SET A=A+3 Where name='''+@name+''''
Exec (@sql)
DECLARE @sql NVARCHAR(MAX),@set NVARCHAR(MAX),@where NVARCHAR(MAX)
SET @set=' A=A+3 '
SET @where=' [name]=''tom'' '
SET @sql='UPDATE tab1 SET '+@set' WHERE '+@where
EXEC (@sql)
-- 你要的就是上面这样?
-- 其实这样并不好,尽量避免动态SQL, 一来不好看也不易维护,二来不安全
-- 一般情况下,都直接更新所有字段就是了,其它字段原封不动就是。省很多事
declare @科目 varchar(10);
declare @name varchar(10)
set @课目='A';
set @name='Tom';
exec('select '+@项目+' from tab1 where name ='''+@name+'''' )