查询结果付值给变量的问题。

hj3793 2007-03-28 11:08:46
use Northwind

Declare @Name varchar(50),
@ID varchar(50),
@Sql varchar(100),
@Res int

Set @Name='Orders'
Set @ID='OrderID'


--Set @Sql= 'Select '+@Res+'=Max('+@ID+')+1 from'+ @Name
--Set @Sql= 'Select '+@Res+'=Max(@ID)+1 from'+ @Name
--Set @Sql= 'Select @Res=Max(@ID)+1 from '+ @Name
Set @Sql= 'Select Max('+@ID+')+1 from '+ @Name
Print @Sql

Execute(@Sql)
---------------------------------------
怎样才能把上面的@Sql语句执行结果付值到 @Res 变量中???
偶试过了几种方法都是错误的,敬请高手解答。
...全文
179 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hrb2008 2007-03-28
  • 打赏
  • 举报
回复
Declare @Name varchar(50),
@ID varchar(50),
@Sql varchar(100),
@Res int,
@maxid int
Set @Name='Orders'
Set @ID='OrderID'
Set @Sql= 'Select @mid=Max('+@ID+')+1 from '+ @Name
set @ParmDefinition =N'@mid int OUTPUT'
EXECUTE sp_executesql @SQL,@ParmDefinition ,@mid =@maxid OUTPUT
select @maxid
paoluo 2007-03-28
  • 打赏
  • 举报
回复
use Northwind

Declare @Name varchar(50),
@ID varchar(50),
@Sql Nvarchar(100), --類型改為Nvarchar
@Res int

Set @Name='Orders'
Set @ID='OrderID'

Set @Sql= 'Select @Res = Max('+@ID+')+1 from '+ @Name
EXEC sp_executesql @Sql, N'@Res int Output', @Res Output --使用sp_executesql
Select @Res
--Result
/*
11078
*/
paoluo 2007-03-28
  • 打赏
  • 举报
回复
use Northwind

Declare @Name varchar(50),
@ID varchar(50),
@Sql Nvarchar(100),
@Res int

Set @Name='Orders'
Set @ID='OrderID'

Set @Sql= 'Select @Res = Max('+@ID+')+1 from '+ @Name
EXEC sp_executesql @Sql, N'@Res int Output', @Res Output
Select @Res

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧