繁体   English   中英

您如何连接其他表或第5表的用户输入的数据?

[英]how do you connect the data from other table or from the users input on my 5th table?

  • 从其他表或用户输入中将数据放在第5表上

  • 在其上插入数据的存储过程

我以Windows形式连接了它。

supplier

CREATE TABLE SUPPLIER
(
    SUPPLIERID int identity(001,1) PRIMARY KEY NOT NULL,
    SUPPLIERNAME varchar(50) NOT NULL,
    ADDRESS varchar(50) NOT NULL,   
    Contact# varchar(50) NOT NULL
)

餐桌products

CREATE TABLE PRODUCTS
(
    PRODUCTID int identity(301, 1) PRIMARY KEY NOT NULL,
    PNAME varchar(50) NOT NULL,
    PCOLOR varchar(50) 
         FOREIGN KEY REFERENCES PRODUCTCOLOR(PRODUCTCOLOR) NOT NULL,
    PPRICE INT NOT NULL
)

表产品productcolor

CREATE TABLE PRODUCTCOLOR
(   
    PRODUCTCOLOR varchar(50) PRIMARY KEY NOT NULL
)

customer

CREATE TABLE CUSTOMER
(       
    CUSTOMERID int identity(601,1) PRIMARY KEY NOT NULL,    
    FIRSTNAME varchar(50) NOT NULL,     
    LASTNAME varchar(50) NOT NULL,                      
    EMAIL varchar(50) NOT NULL ,        
    ADDRESS varchar(50) NOT NULL,       
    TELEPHONE varchar(50) NOT NULL,
    username varchar(50),
    password varchar (50)
)

我想将它们放在第5个表格中并用它创建一个存储过程

orders

CREATE TABLE ORDERS
(
    Cusid int NOT NULL foreign key references CUSTOMER(CUSTOMERID),
    Proid int NOT NULL foreign key references PRODUCTS(PRODUCTID),
    Supp int NOT NULL foreign key references SUPPLIER(SUPPLIERID),
    FNAME VARCHAR(50),
    LNAME VARCHAR(50),
    PRONAME VARCHAR(50),
    SUPNAME VARCHAR(50),
    PCOLOR  varchar(50)FOREIGN KEY REFERENCES PRODUCTCOLOR(PRODUCTCOLOR)NOT NULL,
    QUANTITY VARCHAR(50)primary key NOT NULL
)

存储过程:

CREATE PROCEDURE sp_order
    @FNAME varchar(50),         
    @LNAME varchar(50),                     
    @PRONAME varchar(50),       
    @SUPNAME varchar(50),       
    @PCOLOR varchar(50),
    @QUANTITY int
AS
    INSERT INTO ORDERS 
    VALUES (@FNAME, @LNAME, @PRONAME, @SUPNAME, @PCOLOR, @QUANTITY)

    RETURN 0

我不知道我的第5张桌子是否正确以及我的存储过程是否正确。

我已经尝试了很多东西,但是有点令人困惑

如果不插入表的所有列,则INSERT语句必须列出特定的列:

INSERT INTO ORDERS (FNAME, LNAME, PRONAME, SUPNAME, PCOLOR, QUANTITY)
VALUES(@FNAME,@LNAME,@PRONAME , @SUPNAME, @PCOLOR, @QUANTITY);

注意如何指定列名以及提供值。

但是 ,您的表定义了NOT NULL列,因此您必须提供这些值。

您的过程应如下所示:

CREATE PROCEDURE sp_order
@Cusid int,
@Proid int,
@Supp int,
@FNAME varchar(50),         
@LNAME varchar(50),                     
@PRONAME varchar(50),       
@SUPNAME varchar(50),       
@PCOLOR varchar(50),
@QUANTITY int
AS

    INSERT INTO ORDERS (Cusid, Proid, Supp, FNAME, LNAME, PRONAME, SUPNAME, PCOLOR, QUANTITY)
    VALUES(@Cusid, @Proid, @Supp, @FNAME,@LNAME,@PRONAME , @SUPNAME, @PCOLOR, @QUANTITY);

RETURN 0;

现在,您遇到了有关获取那些外键值的问题。 根据您提供的信息,我无济于事。

顺便说一句 ,因为这是一个特殊的前缀,将打你小的性能损失,你不应该命名以“sp_”程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM