我使用Flyway进行SQL Server 2014数据库的数据库版本控制。我有800多个存储过程。
在初始迁移中,对于大约394个存储过程,QUOTED_IDENTIFIER
设置为OFF
。但是当我将它作为唯一的存储过程单独迁移时,QUOTED_IDENTIFIER
设置为ON
。
QUOTED_IDENTIFIER
的默认值始终为ON
。
我尝试在QUOTED_IDENTIFIER
连接字符串中设置QUOTED_IDENTIFIER=ON
值(JTDS
),但没有用。
这有什么解决方法吗?
答案 0 :(得分:1)
Quoted_Identifier
和Ansi_Nulls
以及其他一些讨厌的属性都是“粘性的”。 Quoted_Identifier的当前状态(在会话中)控制在创建新引入的过程或函数时“坚持”的内容。有些工具更好,有些更糟糕的是将插入之前的插入create procedure
或create function
语句。当您查看数据库中的源时,您可能会看到生成的语句,也可能看不到...取决于您使用的工具。
这些属性被捕获到sys.sql_modules
,其中包含源文本和状态uses_ansi_nulls
和uses_quoted_identifier
以及其他粘性属性。您可以使用这些标志来了解如何在过程和/或函数之前编写任何语句。