【发布时间】:2018-03-06 18:36:58
【问题描述】:
我很难理解作为存储过程的输入参数所需的表值参数的实现。我需要根据以下要求创建一个存储过程:
它明确指出我需要创建一个名为usp_createPackage 的存储过程,并带有输入和输出参数。在此之前,我已经在下面创建了这些存储过程所需的表:
CREATE TABLE ServicePackage
(
servicePackageID VARCHAR (10) NOT NULL,
name VARCHAR (50) NOT NULL,
description VARCHAR (50),
startDate DATE NOT NULL,
endDate DATE ,
advertisePrice DECIMAL (6,2) NOT NULL,
inclusion VARCHAR (50) NOT NULL,
exclusion VARCHAR (50) NOT NULL,
status VARCHAR (50) NOT NULL,
serviceID VARCHAR (10) NOT NULL,
staffID VARCHAR (10) NOT NULL,
PRIMARY KEY(servicePackageID),
FOREIGN KEY (serviceID)
REFERENCES ServiceItem (serviceID)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (staffID)
REFERENCES Staff (staffID)
ON UPDATE CASCADE ON DELETE NO ACTION,
);
服务项目表(用于需要TPV的第二个输入参数),创建了下表和代码:
CREATE TABLE ServiceItemInPackage
(
serviceID VARCHAR (10) NOT NULL,
servicePackageID VARCHAR (10) NOT NULL,
qty INT NOT NULL,
PRIMARY KEY (serviceID, servicePackageID),
FOREIGN KEY (serviceID)
REFERENCES ServiceItem (serviceID)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (servicePackageID)
REFERENCES ServicePackage (servicePackageID)
);
到目前为止,我正在创建的存储过程缺少需要 TPV 的第二个参数,并且我还没有实现开始后发生的事情:
CREATE PROCEDURE usp_createPackage
@name VARCHAR(50),
@description VARCHAR(50),
@startDate DATE,
@endDate DATE,
@advertisePrice DECIMAL (6,2),
@staffID VARCHAR(10),
@servicePackageID VARCHAR(10) OUTPUT
AS
BEGIN
请问,如何创建一个包含 TPV 的存储过程,以及在 imgur 中实现目标我缺少什么?
【问题讨论】:
-
您还记得讲师谈到创建和使用用户定义的类型吗?这是您需要使用的。您将类型创建为具有多个列的表。除了为您完成整个任务之外,没有太多要添加的内容。 google.com/…
-
我会注意的。
-
阅读documentation,其中包含一个示例。您不创建表,而是创建用户定义的表type。
标签: sql-server stored-procedures