gpt4 book ai didi

sql-server - SQLCMD 中忽略 SET NOCOUNT OFF

转载 作者:行者123 更新时间:2023-12-03 03:38:38 25 4
gpt4 key购买 nike

我想查看查询运行的每个 DDL 语句有多少行受到影响,因此我在运行的每个查询开始时设置 SET NOCOUNT OFF。

示例查询:

SET NOCOUNT OFF;
GO
BEGIN TRY

BEGIN TRANSACTION
UPDATE dbo.tbProvClause SET ClauseTemplate = 'Clause1' where DocumentName = '\Templates\EndorsAccessPlainLanguageQCEng.CDS';
UPDATE dbo.tbProvClause SET ClauseTemplate = 'Clause 2' where DocumentName = '\Templates\EndorsEnforcedRemovallLtdMktPublicPropertyQCEng.CDS';
UPDATE dbo.tbProvClause SET ClauseTemplateFR = 'Malgré French Clause 1' where DocumentNameFR = '\Templates\EndorsAccessHOPPQcFr.CDS';
UPDATE dbo.tbProvClause SET ClauseTemplateFR = 'Malgré les exceptions Clause 2' where DocumentNameFR = '\Templates\EndorsEnlèvementFTNdomainepublicERLMPublicPropertyQcFr.CDS';
COMMIT TRAN
PRINT 'Script Completed With Success - Changes committed on ' + CAST(current_timestamp AS varchar(25))
END TRY

BEGIN CATCH
--
END CATCH

GO

它返回

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)
Script Completed With Success - Changes committed on Nov 29 2017 12:10PM

这很好。但是当我在 SQLCMD 中运行相同的内容时,我只得到 1 行,即

sqlcmd -S testserver -dTestDB -i StackOverflowSQL.sql

(1 rows affected)
Script Completed With Success - Changes committed on Nov 29 2017 12:24PM

如何在 SQLCMD 中保留 SET NOCOUNT OFF 的功能?我问这个问题的原因是我有许多脚本想要使用 SQLCMD 进行批处理,并且我将保存它们的日志。在这种情况下,SET NOCOUNT OFF 在检查受影响的 1 行 行数方面非常有用,将给出运行成功的反馈。

最佳答案

尝试这样的方法,看看它是否有效。

使用-v(小写字母v)。

sqlcmd -v NOCOUNT=OFF -S testserver -dTestDB -i StackOverflowSQL.sql

或者

在同一命令提示符中,首先运行 SET NOCOUNT=OFF,然后调用 sqlcmd

查看下面的文档链接并搜索“变量优先级”。你会得到一些想法。

https://learn.microsoft.com/en-us/sql/tools/sqlcmd-utility

关于sql-server - SQLCMD 中忽略 SET NOCOUNT OFF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47558546/

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