问题,我怎样才能使插入只执行 9 次?我说 9 是因为这是 @CN_COUNT 的值。相反,这是执行 9*9。任何帮助将不胜感激。
DECLARE @CN_COUNT INT
, @DATE VARCHAR(10) = CONVERT(VARCHAR(10), GETDATE(),101)
, @TIME VARCHAR(10) = CONVERT(VARCHAR(8), GETDATE(),114)
SELECT @CN_COUNT = COUNT(*) FROM CARTON_HEADER
DECLARE @CN INT
SET @CN = 1
WHILE (@CN <= @CN_COUNT)
BEGIN
SET @CN = @CN + 1
INSERT INTO TM_CARTON(
CN_NUMBER, CN_PICKTICKET, CN_LOAD_NUMBER, CN_SHIPMENT_NUMBER, CN_PACKED_QTY, CN_TRACKING_NUMBER,
CN_ROUTE, CN_BOL, CN_MBOL, CN_PARCEL_NUMBER, CN_TRAILER_NUMBER, CN_CREATED_DATE, CN_CREATED_TIME)
SELECT
CN_NUMBER, CN_PICKTICKET, CN_LOAD_NUMBER, CN_SHIPMENT_NUMBER, CN_PACKED_QTY, CN_TRACKING_NUMBER,
CN_ROUTE, CN_BOL, CN_MBOL, CN_PARCEL_NUMBER, CN_TRAILER_NUMBER, @DATE, @TIME
FROM CARTON_HEADER WHERE CN_LOAD_NUMBER = '1000000002'
END
GO
这是示例数据:
CN_NUMBER CN_STATUS CN_LOAD_NUMBER
1001333311111 85 1000000002
1001333311112 85 1000000002
1001333311114 85 1000000002
1001333311113 85 1000000002
1001333311115 85 1000000002
1001333311116 85 1000000002
1001333311117 85 1000000002
1001333311118 85 1000000002
1001333311119 85 1000000002
以上数据在表 A 上,我想将其复制到表 B 中,其中 CN_LOAD_NUMBER 是我在语句中声明的内容
对不起,伙计们,我把这比原来的解决方案更复杂了,解决方案只是一个没有循环的简单 INSERT 语句。
INSERT INTO TM_CARTON(
CN_NUMBER, CN_PICKTICKET, CN_LOAD_NUMBER, CN_SHIPMENT_NUMBER, CN_PACKED_QTY, CN_TRACKING_NUMBER,
CN_ROUTE, CN_BOL, CN_MBOL, CN_PARCEL_NUMBER, CN_TRAILER_NUMBER, CN_CREATED_DATE, CN_CREATED_TIME)
SELECT
CN_NUMBER, CN_PICKTICKET, CN_LOAD_NUMBER, CN_SHIPMENT_NUMBER, CN_PACKED_QTY, CN_TRACKING_NUMBER,
CN_ROUTE, CN_BOL, CN_MBOL, CN_PARCEL_NUMBER, CN_TRAILER_NUMBER, @DATE, @TIME
FROM CARTON_HEADER WHERE CN_LOAD_NUMBER = '1000000002'