变量声明找不到数据类型



我想将一些数据存储到SQL Server中的表类型中。在下面的代码中,我定义了表的结构并将其声明为类型。但后来,使用该类型声明的变量找不到它。错误是:

列、参数或变量 #17:找不到数据类型 ARTSRetailPriceModifier。

声明的代码和变量的赋值为:

CREATE TYPE ARTSRetailPriceModifier AS TABLE   
( 
    ID int NOT NULL IDENTITY(1,1),
    RecID int,
    PromoId int,
    SNumber int,
    MCode VARCHAR(50),
    Amount DECIMAL(7,2),
    [Action] VARCHAR(20),
    NPrice DECIMAL(7,2),
    PPrice DECIMAL(7,2),
    RCode VARCHAR(1),
    PCondition VARCHAR(1)
);
DECLARE @PriceModifiers AS ARTSRetailPriceModifier
INSERT INTO @PriceModifiers (
    RecID,
    PromoId,
    SNumber,
    MdCode,
    Amount,
    [Action],
    NPrice,
    PPrice,
    RCode,
    PCondition
)
SELECT  d.RecID AS 'RecID'
    , 1 AS 'PromotionID'
    , d.SequenceNumber + 1 AS 'SequenceNumber'
    , 'PriceOverride'AS 'MethodCode'
    , ABS(d.RetailPrice - d.UnitListPrice) AS 'Amount'
    , 'Replace' AS 'Action'
    , d.UnitListPrice AS 'NewPrice'
    , d.RetailPrice AS 'PreviousPrice'
    , '1' AS 'ReasonCode'
, '1' AS 'PromoCondition' 
FROM #Items d

表格#Items已正确填充。

CREATE TYPE 后添加GO。请参阅此处的示例。

可能的解释是,在事务完成之前,该类型没有被构造或添加到系统中,但是当我们要对它执行一些操作时,我们必须在系统中有一个真正的类型。

最新更新