我有一个要求,将数据插入表中,其中表名称是动态的,这是实际的查询:-
INSERT INTO GENERATEBARCODE (BARCODEID, AMUID, GROSS_WT, TARE_WT, PRODUCTCODE, BATCHNO, PREVBARCODEID, LOT, UNAME, STAGE, STATUS)
SELECT DISTINCT BARCODEID, 'DISPENSEHOLD', IT.GROSS_QUANTITY, IT.TARE_QUANTITY, BM.PRODUCT_CODE, IT.BATCH_NO, 'NA', LOT, 'NA', 'START', 'INPROCESS'
FROM inserted IT INNER JOIN
DISPENSE_HOLD BM
ON IT.BATCH_NO = BM.BATCH_NO;
此处表名称动态变化
我有一个变量,它给出 01,02,03 等
应根据 Generatebarcode+'01'
等变量值将数据动态插入到表中。我该怎么做?
最佳答案
实现此目的的一种方法是使用如下动态查询。
DECLARE @VER VARCHAR(10)
SET @VER='01'
DECLARE @SQL NVARCHAR(MAX)
SET @SQL = N'INSERT INTO GENERATEBARCODE' + @VER + ' (BARCODEID, AMUID, GROSS_WT, TARE_WT, PRODUCTCODE, BATCHNO, PREVBARCODEID, LOT, UNAME, STAGE, STATUS)
SELECT DISTINCT BARCODEID, ''DISPENSEHOLD'', IT.GROSS_QUANTITY, IT.TARE_QUANTITY, BM.PRODUCT_CODE, IT.BATCH_NO, ''NA'', LOT, ''NA'', ''START'', ''INPROCESS''
FROM inserted IT INNER JOIN
DISPENSE_HOLD BM
ON IT.BATCH_NO = BM.BATCH_NO;'
EXECUTE sp_executesql @SQL
关于sql-server - 将数据插入到表中,其中表名称是动态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49131540/