我有一个SQL数据库,它有一个存储过程,可以创建到另一个服务器的链接服务器。
@password VARCHAR(MAX)
IF NOT EXISTS (SELECT 1 from sys.servers where name = @sqlServerName)
BEGIN
EXEC sp_addlinkedserver @server = @sqlServerName, @srvproduct=N'SQL Server'
EXEC sp_addlinkedsrvlogin @rmtsrvname=@sqlServerName,
@useself=N'False',
@locallogin=NULL,
@rmtuser=@username,
@rmtpassword=@password
END
我通过实体框架执行此存储过程,如
var password = new SqlParameter("@password","password");
Context.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction,"usp_SpNamer @Inserts OUTPUT, @sqlDBName, @sqlServerName, @username, @password", inserts, sqldDBName, sqlServerName, username, password);
但是,由于密码错误,链接服务器的创建失败。 (错误是登录失败)
但这只发生在我通过另一台服务器上的bin / app.exe运行时。如果我在VS中通过调试模式运行它,它就可以工作。
有任何明显的问题吗?