このエラーが表示されます。私がやっていることは、あるテーブルと1つのデータベースからデータを取り出し、別のデータベースとテーブルに配置しようとすることです。テーブルはまったく同じではありません。 FETCHカーソルを使用しているので、db1テーブルから最初の行をフェッチし、各列の値を宣言された変数に配置します。次に、INSERTステートメントをdb2テーブルに実行し、次の値をフェッチします。すべて正常に動作しているようですが、最終的にこのエラーが発生します。キーワード 'table'の近くの構文が正しくありません
キーワード 'table'の近くに構文が正しくありません。
トランザクションステートメント全体が、CATCHブロック内のエラー処理式を含むTRY/CATCHにあります。それ以外に私はこれを引き起こす原因を知らない。助けてください。ここ
キーワードtable
1つのテーブルから選択するか、別のへの挿入のいずれかにおいて有用でないコード
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
無効な構文でコードを送信してください。 –
あなたの問題は、あなたがコードを持っていないということです:SPとDDLはありません。もしあなたがそれを持っていたら、あなたはそれを掲示していたでしょう、あなたは明らかにそれを持っていません。 –
あなたが問題を抱えているコードを投稿する必要があります – Kev