【发布时间】:2019-09-12 21:09:58
【问题描述】:
我有一个存储过程,它执行两个存储过程并获取正确的数据,但现在我需要在临时表中添加一个具有默认值的列。
例如,我想在第一个存储过程执行时向临时表添加一个位置类型列,我想向每条记录添加 1,当第二个存储过程添加到临时表时,我想向该列添加 2对于每条记录。这可以实现吗?
仅此而已
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[uspStockAdjustmentGetStorageLocationTESTDELETEAFTER]
@CategoryId INT,
@ReasonId INT
AS
SET NOCOUNT ON
DECLARE @LocationType INT
SELECT @LocationType = LocationType
FROM [dbo].[StockAdjustmentReasonGLAccount]
WHERE CategoryId = @CategoryId AND ReasonId = @ReasonId
IF(@LocationType = 1)
BEGIN
CREATE TABLE #tmp
(
ID INT IDENTITY(1, 1),
CODE NVARCHAR(50),
Description NVARCHAR(50)
)
INSERT INTO #tmp
EXECUTE dbo.uspStockAdjustmentWorkCentreSelectAll
INSERT INTO #tmp
EXECUTE dbo.uspStockAdjustmentGetSAPStorageType
SELECT
Code, MIN(id) AS Id
FROM
#tmp
GROUP BY
CODE
ORDER BY
Id
DROP TABLE #tmp
END
我不确定如何使用默认值添加此列
【问题讨论】:
-
用
DEFAULT值定义列。 Specify Default Values for Columns -
如果您只是要在第二个过程运行后立即将值更新为 2,我不明白您为什么要为值 1 烦恼。只需在第二个过程调用之后添加更新。更新#tmp set LocationType = 2
标签: sql-server