我有这个比较尴尬的问题:
现在半个月,每当我已经更新了使用我的SQL脚本/创建存储过程后,当这些存储过程运行,未能以上述错误。
解决这一问题的其他职位在我的情况没有帮助。
下面是一些参数,有助于排除那些没有在我的案件,不适用共同的解决办法:
我的存储过程的脚本在我的笔记本电脑(SQL Server 2012中,在Windows Server 2008 R2)工作得很好。
我的存储过程脚本任何其他机器上正确地创建存储过程(这是我们构建机器,安装SQL Server 2012中,我们的测试服务器,与SQL Server 2005安装,和我们的PROD服务器,安装SQL Server 2005中)。 然而,存储过程不会将任何其他机器上比我跑。
我在我的机器上使用我们生产的SQL Server(SQL Server 2005中)的数据库备份(像任何其他机器在这里所做的)。
即使是最基本的存储过程失败(例如
DELETE myTable WHERE ID = @delID
)。在每一个SQL Server安装我检查,带引号的标识符设置为
OFF
(!),无论在服务器和数据库级别。 那么,为什么我的存储过程中突然需要有这个选项设置为ON
?我使用
SQLCMD
运行我的脚本。 这给了我一个选项,以动态地设置服务器实例的数据库名称在USE
语句。我只脚本包含一个
USE
后声明中,右ALTER PROCEDURE
; 或者可替换地IF EXISTS (...) DROP PROCEDURE ... GO; CREATE PROCEDURE ...
IF EXISTS (...) DROP PROCEDURE ... GO; CREATE PROCEDURE ...
这一切都工作多年了,但突然,因为两个星期前,我的脚本创建存储过程突然失败。
我知道我可以手动设置QUOTED_IDENTIFIER
到ON
在我的脚本-但我不想。 也有一些是错在这里。 我想知道是什么问题。
这里发生了什么事?