declare @title varchar(30) declare @fieldStr varchar declare @bid int declare @typeid int set @bin=1 set @typeid =1if (@typeid =1) set @fieldStr='bbb' --根据@typeid的值动态改变查询字段if (@typeid =2) set @fieldStr='aaa'--根据@typeid的值动态改变查询字段 declare @sql nvarchar(1000) set @sql=N'select @title=title from tableb where '+@fieldStr+'=@bid)'exec sp_executesql @sql,N'@bid int,@title varchar(30) output',@bid,@title outputprint @title
set @title=(select title from tableb where @fieldStr=@bid) ---上面改为 declare @sql nvarchar(4000) set @sql=N'Select @title=title from tableb where '+@fieldStr+'=@bid' exec sp_executesql @sql,N'@title varchar out,@bid int',@title out ,@bid
DECLARE @sql NVARCHAR(1000) SET @sql=N'SELECT @title=title from tableb where ' + @fieldStr + '=' + RTRIM(@bid) EXEC sp_executesql @sql,N'@title VARCHAR(100) OUTPUT',@title OUTPUT
declare @fieldStr varchar
declare @bid int
declare @typeid int
set @bin=1
set @typeid =1if (@typeid =1)
set @fieldStr='bbb' --根据@typeid的值动态改变查询字段if (@typeid =2)
set @fieldStr='aaa'--根据@typeid的值动态改变查询字段
declare @sql nvarchar(1000)
set @sql=N'select @title=title from tableb where '+@fieldStr+'=@bid)'exec sp_executesql @sql,N'@bid int,@title varchar(30) output',@bid,@title outputprint @title
---上面改为
declare @sql nvarchar(4000)
set @sql=N'Select @title=title from tableb where '+@fieldStr+'=@bid'
exec sp_executesql @sql,N'@title varchar out,@bid int',@title out ,@bid
SET @sql=N'SELECT @title=title from tableb where ' + @fieldStr + '=' + RTRIM(@bid)
EXEC sp_executesql @sql,N'@title VARCHAR(100) OUTPUT',@title OUTPUT