ALTER PROCEDURE [dbo].[sp_Curing_log_data]
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
DECLARE @Rdatetime AS Datetime
DECLARE @Barcode AS Varchar(15)
DECLARE @Cavity AS Varchar(5)
DECLARE @IPLH AS Float
DECLARE @IPRH AS Float
DECLARE @ITLH AS Float
DECLARE @ITRH AS Float
DECLARE @PTLH AS Float
DECLARE @PTRH AS Float
DECLARE @SPLH AS Float
DECLARE @SPRH AS Float
DECLARE @MachineID AS Varchar(15)
DECLARE @ShiftID AS Varchar(5)
DECLARE @C_Flag AS Int
DECLARE @MyCursor CURSOR
SET @MyCursor = CURSOR FAST_FORWARD
FOR
select TOP (10000) * from [10.65.84.4].[CEAT].dbo.Curing_Trend with(NOLOCK) order by Rdatetime asc
OPEN @Mycursor
FETCH NEXT FROM @MyCursor
INTO
@Rdatetime,@Barcode,@Cavity,@IPLH,@IPRH,@ITLH,@ITRH,@PTLH,@PTRH,@SPLH,@SPRH,@MachineID,@ShiftID,@C_Flag
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO dbo.Curing_Trend (Rdatetime, Barcode, Cavity, IPLH, IPRH, ITLH, ITRH, PTLH, PTRH, SPLH, SPRH, MachineID, ShiftID)
values(@Rdatetime,@Barcode,@Cavity,@IPLH,@IPRH,@ITLH,@ITRH,@PTLH,@PTRH,@SPLH,@SPRH,@MachineID,@ShiftID)
Update [10.65.84.4].[CEAT].dbo.Curing_Trend SET C_Flag = 0 where Rdatetime = @Rdatetime and Barcode = @Barcode
FETCH NEXT FROM @MyCursor
INTO @Rdatetime,@Barcode,@Cavity,@IPLH,@IPRH,@ITLH,@ITRH,@PTLH,@PTRH,@SPLH,@SPRH,@MachineID,@ShiftID,@C_Flag
END
CLOSE @MyCursor
DEALLOCATE @MyCursor
Delete from [10.65.84.4].[CEAT].dbo.Curing_Trend where C_Flag =0
END TRY
BEGIN CATCH
EXEC [dbo].[sp_InsertErrorDetails]
Return 2
END CATCH
END
Dies ist mein Verfahren für die Übertragung von Daten von einem Server auf einen anderen Server, da es über Millionen von Daten Cursor ist nicht wirksam.Gibt es alternative Methode für Cursor in SQL Server?
Bitte können Sie vorschlagen, alternative Möglichkeit anstelle von Cursor.
Vielen Dank im Voraus
Sie versuchen, die gesamte Tabelle oder nur eine Teilmenge von Daten zu übertragen? – Greg
Im Übertragen von 100000 Daten von einer Tabelle zu einer anderen. Es dauert sehr lange, wenn der Cursor läuft. –
Wenn Sie die gesamte Tabelle übertragen möchten, verwenden Sie bcp in/out. Wenn Sie eine Teilmenge von Daten übertragen möchten, welche Schlüssel sind der PK/Clustering-Schlüssel? – Greg