gpt4 book ai didi

sql-server - 为什么 SSMS 会更改我的存储过程(重新格式化、将 exec 更改为 EXECUTE 等)

转载 作者:行者123 更新时间:2023-12-02 23:52:17 25 4
gpt4 key购买 nike

SSMS 突然重新格式化我的存储过程 - 它以前从未这样做过。这是我正在谈论的一个例子。这是我上周创建的存储过程的开头:

CREATE PROCEDURE [dbo].[usp_LoanDataNames]
(
@LoanID varchar(max) = null,
@Columns varchar(max) = null,
@DataNames NVARCHAR(MAX) = '',
@SQL NVARCHAR(MAX) = ''
)
AS

我今天之前创建的所有存储过程仍然具有该格式。但是,当我今天创建一个新的存储过程,其格式与上面的完全相同,然后拉出存储过程脚本时,它看起来像这样:

CREATE PROCEDURE [dbo].[usp_LoanDataNames2]
@LoanID VARCHAR (MAX)=NULL, @Columns VARCHAR (MAX)=NULL, @DataNames NVARCHAR (MAX)='', @SQL NVARCHAR (MAX)=''
AS

这是与以前不同的格式。它将所有参数上移到紧跟存储过程名称之后,并将它们全部放在同一行。另外(我没有费心发布整个存储过程,所以我没有发布这部分),它将 Exec 更改为 Execute。它改变了各行的缩进,并将许多小写单词更改为大写。

如果我这样做,它甚至会改变格式:

CREATE PROCEDURE  [dbo].[usp_LoanDataNames] 
AS

DECLARE
@LoanID varchar(max) = null,
@Columns varchar(max) = null,
@DataNames NVARCHAR(MAX) = '',
@SQL NVARCHAR(MAX) = ''
)

它将更改为:

CREATE PROCEDURE [dbo].[usp_LoanDataNames2]
@LoanID VARCHAR (MAX)=NULL, @Columns VARCHAR (MAX)=NULL, @DataNames NVARCHAR (MAX)='', @SQL NVARCHAR (MAX)=''
AS

知道为什么会发生这种情况吗?我们在这里使用某些标准,原始存储过程是我公司喜欢的格式。问题是我不能再使用这种格式,因为我创建或更改的每个存储过程现在都会自动重新格式化。有什么想法吗?

谢谢。

最佳答案

当您使用 Always Encrypted 并启用了“为 Always Encrypted 启用参数化”选项时,就会发生这种情况。

修复:

  1. 转至:查询 > 查询选项 > 执行 > 高级
  2. 取消选中启用始终加密的参数化(位于列表末尾)

只有在使用临时查询且非存储过程时才应启用此选项。

关于sql-server - 为什么 SSMS 会更改我的存储过程(重新格式化、将 exec 更改为 EXECUTE 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48067013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com