0

我需要将用户信息从实时数据库转移到它的新家(它是通过实时数据库的备份创建的,所以我只想移植新用户。(运行 sql sqerver 2005)

我可以毫无问题地传输 aspnet_ 表

但是,当我尝试做用户表时,它会出错:

消息 512,级别 16,状态 1,过程 Mailing_list,第 18 行子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。

询问

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

我还在至少两个其他数据库上运行了相同的代码部分,没有任何问题

任何帮助将不胜感激

在此先感谢马特

4

1 回答 1

3

昨天花了一两个小时盯着这个问题并决定提出这个问题后,我再次看了一眼,它击中了我。

There was a trigger on the table for insert/update and it was throwing a wobbly dropped it ran the query and it now works

于 2011-05-13T09:02:19.507 回答