首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求大神帮忙修改上存储过程!多谢了

2013-02-24 
求大神帮忙修改下存储过程!谢谢了!ALTER proc [dbo].[text]@ModelID int,@TableID intasbegindeclare c1 c

求大神帮忙修改下存储过程!谢谢了!


ALTER proc [dbo].[text]
@ModelID int,
@TableID int
as
begin
declare c1 cursor for select ModelFieldID from ModelInfo where ModelID=@ModelID 
while @@FETCH_STATUS=0
begin
open c1
declare @ModelFieldID int
fetch next from c1 into @ModelFieldID
declare c2 cursor for select ModelFieldName from ModelFieldInfo where ModelFieldID=@ModelFieldID
while @@FETCH_STATUS=0
begin
open c2
declare @ModelFieldName varchar(100)
fetch next from c2 into @ModelFieldName
declare @sql varchar(6000)

set @sql='(select FieldContext'
select @sql=@sql+'from FieldInfo where FieldTime=a.FieldTime and ModelFieldID'+@ModelFieldID+')'as @ModelFieldName
from (select distinct FieldTime from FieldInfo where TableID=@TableID) a
exec(@sql)
end
end
close c2
deallocate c2
end
 close c1
 
 deallocate c1
 

[解决办法]
try


ALTER proc [dbo].[text]
@ModelID int,
@TableID int
as
begin

declare @ModelFieldID int,@ModelFieldName nvarchar(100)
declare @sql nvarchar(4000),@tb nvarchar(100)

declare c1 cursor for
select a.ModelFieldID,b.ModelFieldName from ModelInfo a 
inner join ModelFieldInfo b on a.ModelFieldID=b.ModelFieldID
where a.ModelID=@ModelID
open c1
fetch next from c1 into @ModelFieldID,@ModelFieldName
while @@fetch_status=0
begin
set @sql='select (select FieldContext '
set @sql=@sql+'from FieldInfo where FieldTime=a.FieldTime and ModelFieldID='
+cast(@ModelFieldID as varchar)+') as '+ @ModelFieldName
select @tb=FieldTime from FieldInfo where TableID=@TableID
set @sql=@sql+' from '+@tb+' as a'
exec(@sql)
fetch next from c1 into @ModelFieldID,@ModelFieldName
end
close c1
deallocate c1
end

热点排行