sql 执行动态语句

时间:2022-01-27 04:29:46

没看明白,可不可以描述清楚点哦

收获园豆: 5
回复  artwl 专家六级 |园豆:16486 | 2011-09-01 09:10

exec (select  top 2 * from pubuser.pfs_userm
except 
select  top 1 * from pubuser.pfs_userm)的之為

id    name
1     張三
我現在取name的值

支持(0) 反对(0) 回复 soarfe | 园豆:146 (初学一级) | 2011-09-01 09:45

@soarfe:

试试这个:

declare @sql nvarchar(4000)
begin
set @sql ='
select top 2 pubuser.pfs_userm.Name from pubuser.pfs_userm
except
select top 1 pubuser.pfs_userm.Name from pubuser.pfs_userm '
exec (@sql)
end;

 

支持(0) 反对(0) 回复 artwl | 园豆:16486 (专家六级) | 2011-09-01 10:05

我是這樣的

declare @sql nvarchar(4000)
declare @username nvarchar(20)
begin
set @sql ='
select  top 2 pubuser.pfs_userm.Name from pubuser.pfs_userm
except 
select top 1 pubuser.pfs_userm.Name from pubuser.pfs_userm '
exec (@sql)
如何取exec (@sql) 結果賦值給 @username
end;
支持(0) 反对(0) 回复 soarfe | 园豆:146 (初学一级) | 2011-09-01 10:17
declare @sql nvarchar(4000)
declare @username nvarchar(20)
begin
set @sql ='select @username=Name from(
select top 2 pubuser.pfs_userm.Name from pubuser.pfs_userm
except
select top 1 pubuser.pfs_userm.Name from pubuser.pfs_userm) A '
exec sp_executesql @sql,N'@username nvarchar(20) output',@username output
select @username
end;
支持(0) 反对(0) 回复 artwl | 园豆:16486 (专家六级) | 2011-09-01 10:52

@天行健 自强不息:这个可以

支持(0) 反对(0)