我有以下存储过程:
DECLARE @BeginDate1 datetime, @EndDate1 datetime
set @BeginDate1 = '04-01-2012'
set @EndDate1 = '03-31-2013'
BEGIN
INSERT INTO MTBUR_Type_Stage
SELECT
R.Type, [Hours],
LEFT(dbo.fn_GetPartName(R.PartID),CHARINDEX('-',dbo.fn_GetPartName(R.ACSS_PartID), 1) - 1) AS 'Part No',
Count(s.status) AS NumberUnscheduled,
([Hours]/Count(s.status)) AS MTBUR
FROM
Repair R
INNER JOIN
Conversion C ON (R.Performed = C.Performed)
AND (R.Confirmed = C.Confirmed)
INNER JOIN
Status S ON C.StatusID = S.StatusID
INNER JOIN
#MTBUR_Hrs_Temp TEMP ON LEFT(dbo.fn_GetPartName(R.PartID),CHARINDEX('-',dbo.fn_GetPartName(R.PartID), 1) - 1) = TEMP.productNo
AND R.Type = TEMP.Type
WHERE
(R.Received BETWEEN @BeginDate1 AND @EndDate1)
AND (S.Status = 'UNSCHEDULED')
GROUP BY
LEFT(dbo.fn_GetPartName(R.PartID),CHARINDEX('-',dbo.fn_GetPartNaame(R.PartID), 1) - 1), [Hours], R.Type
ORDER BY
R.Type,
LEFT(dbo.fn_GetPartName(R.ACSS_PartID),CHARINDEX('-',dbo.fn_GetPartID(R.PartID), 1) - 1) ASC
DROP TABLE #MTBUR_Hrs_Temp
END
正在插入的表 (MTBUR_Type_Stage
) 具有名为 EndingDate
和 EndingQuarter
的列。 EndingDate
需要具有与 @EndDate
相同的日期(常量),并且 EndingQuarter
需要具有常量值 1
如何在我的存储过程中编写此脚本,以便使用这些常量填充 MTBUR_Type_Stage
中相关列中的所有行?
以下是我要插入的表的 DDL:
CREATE TABLE [dbo].[MTBUR_ByType_StageTbl]
(
[Type] [nvarchar](25) NULL,
[Hours] [float] NULL,
[Part No] [varchar](15) NULL,
[UnscheduledRemovals] [int] NULL,
[MTBUR] [float] NULL,
[EndingDate] [datetime] NULL,
[EndingQuarter] [int] NULL
) ON [PRIMARY]
最佳答案
就这么简单:
insert MTBUR_Type_Stage(EndingDate,EndingQuarter)
values (@EndDate,1)
;
或者这个
insert MTBUR_Type_Stage(EndingDate,EndingQuarter)
select @EndDate,1
扩展到更多字段:
insert MTBUR_Type_Stage(
[Type],
[Hours],
[Part No],
[UnscheduledRemovals],
[MTBUR],
[EndingDate],
[EndingQuarter] [int] NULL
)
select
'x',1.00,'part 1', 0, 2.34,
@EndDate,1
关于sql - 在存储过程中向表中插入常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24899916/