sqlserver 臨時表

 想把一個數據表裏的某個字段篩選出來然後,循環的把值傳給另一個存儲過程,選擇使用了臨時表。
SQL代碼如下:
CREATE TABLE #Temp_TABLE
ID INT IDENTITY(1,1),
TRANSID VARCHAR(30), --出庫單號
PRIMARY KEY (ID)
)
INSERT INTO #Temp_TABLE
SELECT TRANSID FROM A WHERE A.RPID='RP00913031200001'--從A表取出符合條件的數據插入到臨時表
DECLARE @TOTAL_COUNT INT,--臨時表記錄條數
@NOW_COUNT INT,--現在遍歷到哪條記錄
@TRID VARCHAR(30)--當前遍歷的transid
SELECT @TOTAL_COUNT=COUNT(*) FROM #Temp_TABLE
SET @NOW_COUNT=1;
WHILE(@NOW_COUNT<=@TOTAL_COUNT)
 BEGIN
   SELECT @TRID=TRANSID FROM #Temp_TABLE 
   WHERE ID=@NOW_COUNT --關鍵就在這(一切都因這個地方而不一樣了哦)
   EXEC proc_monprocess @TRID--傳給另一個存儲過程
   SET @NOW_COUNT=@NOW_COUNT+1
 END
DROP TABLE #Temp_TABLE

有關表的數據插入
1、把臨時表中的數據插入到另一個表中
insert into 表 select * from #temp
2、把一個表中字段複製到臨時表中
select * into #temp from   表 where ...
3、本地臨時表的名稱以單個數字符號 (#) 打頭;它們僅對當前的用戶連接是可見的;
4、當用戶從 SQL Server 實例斷開連接時被刪除。
5、判斷臨時表是否存在
create proc temp(@tablename varchar(200))
as
begin
declare @exec varchar(8000)
set @exec='use tempdb
if exists(select * from sysobjects 
where id=object_id(''tempdb..'+@tablename+'''))
select ''存在''
else
select ''不存在'''
exec (@exec)
end
發佈了37 篇原創文章 · 獲贊 6 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章