1. ホーム
  2. sql

[解決済み] オブジェクト名に最大数を超える接頭辞が含まれています。最大数は3です。

2022-02-17 07:17:55

質問

私のストアドプロシージャは、他のサーバー上のデータベースにレコードを書き込もうとしています。ステートメントはここにあります。

IF @Builds > 0
   BEGIN
        SET @DPU = @Failures / @Builds
        INSERT INTO SQL05.ManufacturingPortal.dbo.OPC.WriteRequests (ID, RegisterID, Value, RequestedDate, IsCompleted)
        VALUES(@PLCID, 'F8:10' , CAST(@DPU AS NUMERIC(10,2)), GETDATE(), 0)    
    END 

しかし、ストアドプロシージャを作成しようとすると、次のエラーが発生します。

オブジェクト名 'SQL05.ManufacturingPortal.dbo.OPC.WriteRequests' には、最大数を超える接頭辞が含まれています。最大数は3です。

Server.DB.DBOのエイリアスを作成してプレフィックスを短くしようとしましたが、間違った実装をしているようです。

ターゲットデータベースでデータベーススキーマを変更することができません。これを回避する方法について、何か提案がありますか?

ありがとうございます。

解決方法は?

4つの部分からなる正しいテーブル名はserver.database.schema.tablenameです - そこに余分な部分があります。

テーブル名はOPC.WriteRequestsのようですね?もしそうなら、括弧を使用しなければなりません。 SQL05.ManufacturingPortal.dbo.[OPC.WriteRequests]

でも、もしかしたら、名前の一部が間違っているだけかもしれませんよ?