论坛首页 综合技术版 Database

<原创>SQL的存储过程、动态语句、临时表、游标的综合应用

浏览 807 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-09-29


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[insertMdfalarmInfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[insertMdfalarmInfo]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE insertMdfalarmInfo
 @alarmID      int,            -- 告警器ID
 @monitorEquID     varchar(16)
 
 AS
 begin
  --drop table #table_tmp
  set @alarmID = 38
  create table #table_tmp
  (
   [id] int
  )
  set @monitorEquID = 6
  
  declare @selectContainerIDsql NVARCHAR(130)
  set @selectContainerIDsql= 'select monitorSourceID from v_mdfAlarmPortInfo where monitorEquPort in (1,3,5)  and monitorEquID = 6  group by monitorSourceID'
  
  
  insert into #table_tmp ([id])  EXECUTE sp_executesql  @selectContainerIDsql
  declare countMonitorSourceID cursor for select id from #table_tmp
  
  open countMonitorSourceID
  declare @monitorSourceID int
  fetch next from countMonitorSourceID into @monitorSourceID
  while @@fetch_status = 0
   begin
    print @monitorSourceID
    fetch next from countMonitorSourceID into @monitorSourceID
   end
  close countMonitorSourceID
  drop table #table_tmp
  deallocate countMonitorSourceID

    end 
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

   
论坛首页 综合技术版 Database

跳转论坛:
JavaEye推荐