我有两张表,其中包含有关产品的信息
products
+-----------+------------+
|productid |productname |
|Int |varchar(50) |
+-----------+------------+
productdetail
+---------+----------+------------+------+------+
|detailId |productid |description |price |stock |
|Int |Int |Text |Money |Int |
| |FK_From_ | | | |
| |productid_| | | |
| |products | | | |
+---------+----------+------------+------+------+
我正在尝试通过将 productName 和 stock 传递给存储过程来使用 TSQL 更新库存水平。我希望能够做这样的事情
Pseudo Code
UPDATE productdetail.stock
SET stock = @stock
WHERE productdetail.productid = products.productname
我“认为”我需要使用某种连接语句并查看了这个
并试图改变它以适应我的代码,但没有成功。
我想在一个查询中做的事情是可能的吗?或者我是否需要先选择 productid,将其设置为一个变量,然后将其用作我的更新查询的一部分,如果可以使用 JOIN 语句,它会看起来像like
这样:
UPDATE tab_productdetails
SET stock = @newStock
FROM tab_productdetails productid
INNER JOIN
tab_productdetails productid ON
@productName = tab_products.productname
我正在使用 SQL Server 2012 Express。如果这有什么不同的话。