我必须按如下方式加入3个表
DECLARE @columnHeaders1 NVARCHAR (MAX), @t varchar(max)
SELECT
@columnHeaders1 = COALESCE (@columnHeaders1 + ',[' + LocationName + ']', '[' + LocationName + ']')
FROM
(SELECT DISTINCT LocationName
FROM StockMaster
JOIN @t ON @t.PartNo = StockMaster.PartNo
JOIN Locations ON StockMaster.LocationId = Locations.LocationId
WHERE substring(StockMaster.PartNo, 1, 2) = 01
AND StockMaster.Quantity > 0) PC
PRINT @columnHeaders1
此处@t
是一个表名,它作为参数传递,但它显示以下错误
Msg 1087,Level 16,State 1,Line 2
必须声明表变量“@t”。
如何申报?
答案 0 :(得分:1)
你不宣布一张桌子!您将@T
声明为单个VARCHAR(MAX)
变量:
DECLARE @t varchar(max)
您需要将其更改为
DECLARE @t TABLE (ColumnName1 varchar(max))
或者你需要的任何东西