declare @s nvarchar(4000)
declare @temp int,@f int,@autoid intselect @f=1
,@autoid=1
while @f<=30
begin
select @s='select @temp=f'+rtrim(@f)+' from inserted where autoid=@autoid'
,@f=@f+1
exec sp_executesql @s,N'@temp int out',@temp out
select 字段=N'f'+rtrim(@f-1),值=@temp
end
declare @temp int,@f int,@autoid intselect @f=1
,@autoid=1
while @f<=30
begin
select @s='select @temp=f'+rtrim(@f)+' from inserted where autoid=@autoid'
,@f=@f+1
exec sp_executesql @s,N'@temp int out',@temp out
select 字段=N'f'+rtrim(@f-1),值=@temp
end
解决方案 »
- 刚学SQL没几天,请教一个SQL语句,谢谢!
- sql server 2005,对视图查询不返回值
- 求一个简单的查询.
- 急...如何查询[用户表]中指定n个用户在[用户登录记录表]中的最新登录信息?
- SQLServer 导出Access报Microsoft JET Database Engine 找不到可安装的 ISAM
- sql事件探查器问题
- 我想把DELPHI和SQL SERVER动态结合起来
- 请教sqlserver的全文检索
- 适合开发中小型数据库的一套方案,请教
- 如何使用SQL删除数据库表的多列
- 请问这句异常是什么意思!!??
- 请问INFORMATION_SCHEMA.TABLES是什么表(视图),存放什么数据的?
declare @sql nvarchar(4000)
declare @autoid intset @sql = N'select @temp=f'+ @f + N' from inserted where autoid=@autoid'execute sp_executesql @sql,N'@temp nvarchar(1000) out,@autoid int',@temp out,@autoid = ...
是不是动态sQL里不能对inserted进行操作呀?
--可以用临时表来处理declare @s nvarchar(4000)
declare @temp int,@f int,@autoid intselect @f=1
,@autoid=1
select * into #i from inserted where autoid=@autoid --缓存inserted表,以便在动态语句中引用
while @f<=30
begin
select @s='select @temp=f'+rtrim(@f)+' from #i'
,@f=@f+1
exec sp_executesql @s,N'@temp int out',@temp out
select 字段=N'f'+rtrim(@f-1),值=@temp
end