Ich erhalte diesen Fehler. Was ich tue, versucht, Daten aus einer Tabelle und einer db zu nehmen und in eine andere db und Tabelle zu legen. Die Tabellen sind nicht genau gleich. Ich verwende einen FETCH-Cursor, also hole ich die erste Zeile aus der Tabelle db1 und platziere dann jeden Spaltenwert in deklarierte Variablen. Dann führe ich die insert-Anweisung in die db2-Tabelle aus und hole den nächsten Wert. Es scheint alles ordnungsgemäß zu funktionieren, weil es gut durchläuft, aber am Ende bekomme ich diesen Fehler,Falsche Syntax in der Nähe des Schlüsselwortes 'Tabelle'
Falsche Syntax in der Nähe des Schlüsselwortes "Tabelle".
Die gesamte Transaktionsanweisung befindet sich in einem TRY/CATCH mit einem Fehlerbehandlungsausdruck im CATCH-Block. Ansonsten weiß ich nicht, was das verursacht. Bitte helfen Sie.
Hier ist der Code
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRY
BEGIN TRANSACTION
--TURN OFF ITENDITY COLUMNS
SET IDENTITY_INSERT [DB].[dbo].[TEST] ON
--TURN OFF ALL CONSTRAINTS
ALTER TABLE [DB].[dbo].[TEST] NOCHECK CONSTRAINT ALL
-- Insert statements for procedure here
DECLARE @ID int,
@DT datetime,
@PID varchar(10),
@AREA varchar(20)
DECLARE FETCH_TEST CURSOR FOR
SELECT [ID]
,[Date]
,[PID]
,[Area]
FROM [OLDDB].[dbo].[TEST] as db1
OPEN FETCH_TEST;
FETCH NEXT FROM FETCH_TEST INTO @ID,
@DT,
@PID,
@AREA
WHILE @@FETCH_STATUS = 0
BEGIN
--INSTER VALUES INTO THE TABLE
INSERT INTO [DB].[dbo].[TEST]
([ID]
,[DT]
,[PID]
,[AREA])
VALUES
(@ID,
@DT,
@PID,
@AREA)
FETCH NEXT FROM FETCH_TEST INTO
@ID,
@DT,
@PID,
@AREA,
END;
CLOSE FETCH_TEST;
DEALLOCATE FETCH_TEST;
-- If we reach here, success!
COMMIT
END TRY
BEGIN CATCH
-- Whoops, there was an error
IF @@TRANCOUNT > 0
ROLLBACK
-- Raise an error with the details of the exception
DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
SELECT @ErrMsg = ERROR_MESSAGE(),
@ErrSeverity = ERROR_SEVERITY()
RAISERROR(@ErrMsg, @ErrSeverity, 1)
END CATCH
--TURN OFF ITENDITY COLUMNS
SET IDENTITY_INSERT [DB].[dbo].[TEST] OFF
--TURN ON ALL CONSTRAINTS
ALTER TABLE [DB].[dbo].[TEST] CHECK CONSTRAINT ALL
END
Veröffentlichen Sie den Code mit der ungültigen Syntax. –
Es ist offensichtlich, dass Ihr Problem ist, dass Sie keinen Code haben: kein SP und keine DDL. Wenn du es hättest, hättest du es gepostet, also hast du es offensichtlich nicht. –
Sie sollten den Code, den Sie haben, Probleme mit – Kev