编辑:我的错误是我在第一个 select 语句之后有一个“go”,这会导致 @variableName 超出范围。
我有一堆相互依赖的查询,我想在另一个查询中使用第一个查询返回的值。例如我想使用第一个查询的产品 ID:
SELECT ProductID,
FROM mproducts
WHERE (ProductCode='$(product)'
or ProductCode='$(product)'
or BuildSysProductCode='$(product)');
在第二个
SELECT ProductVersionID,
FROM cb_mproductversions
WHERE ProductID=***variableName***
go
我研究了变量,发现了一些将值存储到变量中的方法,例如这样做
DECLARE @variableName
SELECT @variableName AS productID
FROM mproducts
...
但是 @variableName 的范围似乎只是下一个 select 语句,当我到达 DECLARE 之后的那个之后的那些语句时,它说它没有声明。
最佳答案
像这样使用
DECLARE @variableName int
SELECT @variableName = productID FROM mproducts WHERE ..
SELECT ProductVersionID
FROM cb_mproductversions
WHERE ProductID = @variableName
关于sql - 在 select 语句中使用一个单元格的值(使用 sqlcmd 运行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11228047/