我们的组长提供了以下这个方法,
新建一个存储过程
SET
QUOTED_IDENTIFIER
ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [ sz_dvp_restore_login_user ]
-- INPUT
@DBName nvarchar ( 50 ),
@UserName nvarchar ( 50 )
AS
Exec sp_configure ' allow updates ' , 1
RECONFIGURE WITH OVERRIDE
Declare @ExecStr nvarchar ( 4000 )
Select @ExecStr = ' Declare @b varbinary(85) ' +
' Use Master '
+ ' Select @b = sid From syslogins Where Name = ''' + @UserName + ''''
+ ' Use ' + @DBName
+ ' Update sysusers Set sid = @b Where name = ''' + @UserName + ''''
-- Print @ExecStr
Exec ( @ExecStr )
Exec sp_configure ' allow updates ' , 0
RECONFIGURE WITH OVERRIDE
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [ sz_dvp_restore_login_user ]
-- INPUT
@DBName nvarchar ( 50 ),
@UserName nvarchar ( 50 )
AS
Exec sp_configure ' allow updates ' , 1
RECONFIGURE WITH OVERRIDE
Declare @ExecStr nvarchar ( 4000 )
Select @ExecStr = ' Declare @b varbinary(85) ' +
' Use Master '
+ ' Select @b = sid From syslogins Where Name = ''' + @UserName + ''''
+ ' Use ' + @DBName
+ ' Update sysusers Set sid = @b Where name = ''' + @UserName + ''''
-- Print @ExecStr
Exec ( @ExecStr )
Exec sp_configure ' allow updates ' , 0
RECONFIGURE WITH OVERRIDE
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
执行这个存储过程
sz_dvp_restore_login_user
'
dbName
'
,
'
username
'
执行完后,就可以访问了。