强制执行 sql 脚本并将结果发送到 SSMS 中的文本

Forcing a sql script to be executed with result to text in SSMS

在使用 SSMS 时,我通常需要将查询结果发送到 "Grid",但我有一个特定的脚本,我需要将其结果发送到 "to text"。有没有办法在我的 .sql 文件的开头编写脚本? 我想这是只有 SSMS 才能理解的东西,它不会是通用的 sql 语句

您可能会发现此 Reddit 线程对您的情况有帮助:https://www.reddit.com/r/SQLServer/comments/1vrlx3/i_want_to_turn_on_text_output_via_sql_command/

基本上,如果您打开了 SQLCMD 模式,运行 将以下内容打印到文本:

:OUT STDOUT 
SELECT * FROM TABLE

要在未打开 SQLCMD 模式的情况下执行脚本时发出警告,您可以使用以下检查:

SET NOEXEC OFF; -- previous execution may have toggled it
:setvar IsSqlCmdEnabled "True"
GO
IF ('$(IsSqlCmdEnabled)' = '$' + '(IsSqlCmdEnabled)')
BEGIN
  PRINT('Use SqlCmd-mode!!');
  SET NOEXEC ON;
  -- RAISERROR ('This script must be run in SQLCMD mode.', 20, 1) WITH LOG
END
ELSE
BEGIN
  PRINT('Using SqlCmd-mode')
  -- insert the code you really want to execute:
  -- ...
END
SET NOEXEC OFF; -- do not disable next execution in this session