【发布时间】:2018-12-04 17:41:21
【问题描述】:
我使用的是 SQL Server 2014,我在其中设计了数据库来处理一般商店管理。
我必须输入商品及其供应商名称、库存和商品名称。为此,我必须执行三个语句,这就是我使用事务选项的原因,因为如果在执行过程中出现任何类型的问题,我需要再次回滚。这是我一直面临许多问题的 SQL。
这是我尝试运行的 SQL 代码:
BEGIN TRANSACTION AddItem
INSERT INTO Product(Name, Stock, Type_Id, Pur_Price, Sale_Price)
VALUES ('Lemon', 20, 2, 129, 325);
INSERT INTO Supplier(Name, Contact_No)
VALUES ('Kamran', '034637827');
INSERT INTO Purchase(Product_id, Supplier_Id, Quantity)
VALUES(EXEC spGetProductId @Name= 'Lemon', EXEC spGetSupplierId @Name='Kamran', 20);
COMMIT AddItem
ROLLBACK
【问题讨论】:
-
您面临很多问题?愿意分享吗?有语法错误吗?没有错误,但数据不正确?
-
您不能像这样在插入语句中将存储过程粘贴到值列表中。而且您似乎在这里遇到了一些非常严重的架构问题。使用产品和/或供应商的名称来获取 ID 表明存在严重错误。这意味着您在这些列中不能有任何重复,这很奇怪。
标签: sql-server transactional dynamic-queries