我在同一台服务器上有两个数据库,db1和db2。 我在db1上有一个表名为table table1,table2在第二个数据库db2中 用户登录db1但不登录db2。 我的应用程序在table1中插入记录,我必须在第二个数据库的table2中插入相同的记录。
现在,由于用户无法访问该数据库,因此我首先尝试创建用户登录。 但是执行存储过程,但它不会创建用户登录。我的存储过程在db1中。
alter procedure CreateUserLogin @userid char(35)
as
declare @s varchar(100)
IF NOT EXISTS (SELECT * FROM db2.sys.database_principals WHERE name = @userid)
BEGIN
set @s='use db2 CREATE USER '+ltrim(rtrim(@userid))+' FROM LOGIN '+ltrim(rtrim(@userid))+''
set @s=@s + 'Exec sp_addrolemember Role1,'+ ltrim(rtrim(@userid))
exec (@s)
END;
答案 0 :(得分:0)
添加+ CHAR(13)后
set @s='USE [db2]'+ CHAR(13)
set @s=@s+' CREATE USER '+ltrim(rtrim(@userid))+' FROM LOGIN '+ltrim(rtrim(@userid))+''
set @s=@s + ' Exec sp_addrolemember role1,'+ ltrim(rtrim(@userid))
不知道这可能是个问题。