【发布时间】:2016-03-21 13:29:30
【问题描述】:
我必须将 SQL Server 2008 R2 从托管在 Virtual Box VM 上的开发环境部署到全新的测试服务器。两台服务器都使用集成的 Windows 身份验证。
部分问题在于测试服务器使用 SQL Server 2008 (Express)。我已设法在 Access 数据库中导出架构创建脚本和原始数据,但这不是问题的主题:显然数据库已正确导入到目标环境中。
但是,当我启动依赖于导出数据库的网站时,我得到了一些在开发环境中运行时不会出现的错误。经过一番研究,我发现问题是由一个小存储过程引起的。
此存储过程会动态创建一个表,当不再需要时删除该表,其语法如下:
create table tmp_Codes (Code nvarchar(max))
当测试环境执行此语句时,测试环境有效地创建了表,但它附加了用户名,类似于:
dbo.[NT AUTHORITY\NETWORK SERVICE].tmp_Codes
后面的代码找不到新创建的表,对它的所有操作都失败了。
我会理解这种设计在某种程度上被破坏了,但是我从工作环境中继承了这一堆 SQL 脚本,我无法理解它是如何工作的
有什么想法吗?
【问题讨论】:
标签: sql-server tsql stored-procedures sql-server-2008-r2