0

ユーザー情報をライブDBから新しいホームに転送する必要があります(ライブDBのバックアップを介して作成されたため、新しいユーザーの移植のみを検討しています。(sql sqerver 2005を実行)

aspnet_テーブルを問題なく転送できます

ただし、usersテーブルを実行しようとすると、次のエラーが発生します。

メッセージ512、レベル16、状態1、プロシージャMailing_list、行18サブクエリが複数の値を返しました。サブクエリが=、!=、<、<=、>、> =の後に続く場合、またはサブクエリが式として使用される場合、これは許可されません。

クエリ

begin TRAN
SET IDENTITY_INSERT TargetDB.dbo.users ON

INSERT INTO TargetDB.dbo.users (UserId, UserName, FirstName, LastName, IsSuperUser,
                                AffiliateId, Email, DisplayName, UpdatePassword)
(SELECT dnnu.UserId, dnnu.username, dnnu.firstname, dnnu.lastname, 
        dnnu.isSuperuser, dnnu.AffiliateId, dnnu.Email, dnnu.DisplayName, 
        dnnu.UpdatePassword
FROM LiveDB.dbo.users dnnu
    INNER JOIN LiveDB.dbo.aspnet_users u
        ON (dnnu.username = u.username)

WHERE dnnu.username NOT IN (SELECT username
                            FROM TargetDB.dbo.users))

SET IDENTITY_INSERT TargetDB.dbo.users OFF
commit TRAN

また、この同じコードセクションを少なくとも2つの他のデータベースで問題なく実行しました

どんな助けでも大歓迎です

よろしくお願いしますマット

4

1 に答える 1

3

昨日、この問題を 1 時間か 2 時間かけてこの問題を見つめ、質問をすることに決めた後、私はもう一度ちらりと見て、それが私を襲った。

挿入/更新用のテーブルにトリガーがあり、不安定なドロップをスローしていましたが、クエリを実行し、現在は機能しています

于 2011-05-13T09:02:19.507 に答える