2

私は3つのデータベースを持っています。そのうちの 1 つに間違ったデータが含まれています。
構造は次のようになります。

DB_1:
Tbl:
ID - otherID - Guid

DB_2:
Tbl:
ID - otherID - Guid

DB_3:
Tbl:
ID - otherID

DB_1 には、DB_3 に格納する必要がある「otherID」が含まれています。
DB_1とBD_2の「Guid」とDB_2とDB_3
の「otherID」が一致

DB_3 の「orderID」を DB_1 の「otherID」で更新するにはどうすればよいですか?

私の最初の試みは:

SELECT A.otherID
FROM [DB_1].dbo.tbl A, [DB_2].dbo.tbl B
WHERE A.Guid = B.Guid;

しかし、その後、更新ステートメントに使用するのに問題がありました。

結果は次のようになりました。

UPDATE [BD_3].dbo.Tbl
SET [BD_3].dbo.Tbl.otherID =
    (
        SELECT A.otherID
        FROM [DB_1].dbo.tbl A,
             [DB_2].dbo.tbl B,
             [DB_3].dbo.tbl C
        WHERE C.otherID = B.oterID
            AND A.guid = B.guid
    );

何かを見つけましたが、この場合の使い方がわからないので、あまり役に立ちませんでした。

4

1 に答える 1

1

これを試してみてください -

UPDATE C
SET otherID = A.otherID
FROM [BD_3].dbo.Tbl C
JOIN [DB_2].dbo.tbl B ON C.otherID = B.oterID
JOIN [DB_1].dbo.tbl A ON A.guid = B.guid

アップデート:

ALTER TRIGGER [dbo].[T_Akquise_ITrig] 
    ON [dbo].[Akquise] 
    FOR INSERT 
AS BEGIN 

    SET NOCOUNT ON;

    INSERT INTO dbo.LSschalter (Art, ParentId) 
    SELECT 3, i.LfdNr 
    FROM INSERTED i 

    INSERT INTO dbo.LSlisten (Art, ParentId) 
    SELECT 3, i.LfdNr 
    FROM INSERTED i 

    IF 
    (
        SELECT COUNT(1) 
        FROM INSERTED
    ) 
    != 
    (
        SELECT COUNT(1)
        FROM dbo.Adressen a
        JOIN INSERTED i ON a.AdrNr = i.AdrNr
    ) BEGIN 

        RAISERROR('Some Message', 16, 1)
        ROLLBACK TRANSACTION 

    END

END
于 2013-08-15T08:36:15.257 に答える