[英]passing a temporary table into another stored procedure
我想这样做:
DECLARE @TmpTable TABLE = select * from someTable where someTable.Column1='BLAH'
我需要@TmpTable
是的一个子集someTable
,我不想隐式声明的结构与领域@TmpTable
,而我希望它从someTable动态创建。
这可能吗?
非常感谢您的帮助和指导!
我已经建议尝试临时表。 但是,我得到了错误:
The table #SubSet does not exist in the database
这是代码:
DECLARE @StartDT DATE
DECLARE @MinDOS DATE
SELECT @MinDOS = MIN(dos) FROM accn_demographics
SELECT @StartDT =
CAST(CAST(datepart(YYYY,@MinDOS) AS varchar) + '-' + CAST(datepart(mm,@MinDOS) AS varchar) + '-' + CAST('01' AS varchar) AS DATETIME)
DECLARE @FileLocation VARCHAR(50)
DROP TABLE #SubSet
WHILE @StartDT < '20110901'
BEGIN
SELECT *
INTO #SubSet
FROM ViewAccountDetail
WHERE datepart(yyyy,ViewAccountDetail.DOS) = datepart(yyyy,@StartDT)
AND datepart(mm,ViewAccountDetail.DOS) = datepart(mm,@StartDT)
SET @FileLocation='C:\test\'+'ViewAccountDetail'+cast(@StartDT as varchar)+'.csv'
EXEC BCP_Text_File #SubSet, @FileLocation
SET @StartDT = DATEADD(MONTH,1,@StartDT)
DROP TABLE #SubSet
END
select *
into #temptable
from someTable
where someTable.Column1='BLAH'
只需将“ @”更改为“#”;)您也可以为此使用CTE。 链接
WITH A
AS
(
select * from someTable where someTable.Column1='BLAH'
)
其中A
是您的“临时表”的别名。 之后,您可以像选择另一个普通表一样选择它。 只要知道你不能拨打和Order By
在select * from someTable where someTable.Column1='BLAH'
这是我所做的!
DECLARE @StartDT DATE
DECLARE @MinDOS DATE
SELECT @MinDOS = MIN(dos) FROM accn_demographics
SELECT @StartDT =
CAST(CAST(datepart(YYYY,@MinDOS) AS varchar) + '-' + CAST(datepart(mm,@MinDOS) AS varchar) + '-' + CAST('01' AS varchar) AS DATETIME)
DECLARE @FileLocation VARCHAR(50)
DROP TABLE #SubSet
WHILE @StartDT < '20110901'
BEGIN
SELECT *
INTO SubSet
FROM ViewTransactionDetails
WHERE datepart(yyyy,ViewTransactionDetails.DOS) = datepart(yyyy,@StartDT)
AND datepart(mm,ViewTransactionDetails.DOS) = datepart(mm,@StartDT)
SET @FileLocation='C:\test\'+'ViewTransactionDetails'+cast(@StartDT as varchar)+'.csv'
EXEC BCP_Text_File SubSet, @FileLocation
SET @StartDT = DATEADD(MONTH,1,@StartDT)
DROP TABLE SubSet
END
谢谢大家的非凡帮助!
我去了一个永久性的桌子,只是把它扔掉!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.