【发布时间】:2011-12-06 07:52:44
【问题描述】:
我写了这个存储过程:
USE [FAB28]
GO
/****** Object: StoredProcedure [dbo].[spPLCIOFilter2] Script Date: 12/06/2011 08:00:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[spPLCIOFilter2]
(
@filter1 VARCHAR(50) = '%',
@filter2 VARCHAR(50) = '%',
@slot VARCHAR(50) = '%'
)
AS
BEGIN
CREATE TABLE #temp
(
"PLC RIO" char(20)
,SIGNAL varchar(6)
,RACK char(2)
,SLOT char(2)
,POINT char(2)
,"CARD" char(20)
,TAG char(30)
,PROJ char(10)
,"DESCRIPTION" char(100)
,"ADDRESS" varchar(22)
)
INSERT INTO #temp
SELECT
[PLC] "PLC RIO"
,[SIGNAL] SIGNAL
,[RACK] RACK
,[SLOT] SLOT
,[POINT] POINT
,[CARD] "CARD"
,[TAG] TAG
,[PROJ] PROJ
,[DESCRIPTION] "DESCRIPTION"
,[ADDRESS] "ADDRESS"
FROM [FAB28].[dbo].[PLC_TAGS2]
WHERE [PLC] <> ''
and [PLC] LIKE '%' + @filter1 + '%'
and [PLC] LIKE '%' + @filter2 + '%'
and [SLOT] LIKE '%' + @slot + '%'
ORDER BY [PLC],[RACK],[SLOT],[POINT]
END
我想返回临时表#temp 和return #temp 不起作用。我还希望在函数结束时删除临时表。
我该怎么做?
【问题讨论】:
-
在您发布的代码中,您可以直接使用 select 语句,如果您在此处发布完整的存储过程,则在此存储过程中永远不需要临时表
标签: sql stored-procedures temp-tables