强制执行 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
在使用 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