Как остановить Invoke-Sqlcmd от усечения запроса

Одна из наших таблиц имеет очень-очень длинные записи в определенном столбце. Эти запросы используются нечасто, но необходимы.

Я использую утилиту sqlcmd в bash так:

-- getfile.sql

SET NOCOUNT ON;

-- Disable message for next USE command
:setvar SQLCMDERRORLEVEL 1
USE myDb;
SELECT myField
FROM myTable 
GO

-- Reenable
:setvar SQLCMDERRORLEVEL 0
# getfile.sh

sqlcmd \
    -S $server \
    -U $username \
    -P $password \
    -y 0 \
    -I getfile.sql > filename.txt

-y 0 это трюк, который позволяет мне получить текст без его усечения.

Итак, теперь мне нужно преобразовать это в PowerShell.

Invoke-Sqlcmd `
    -ServerInstance $server `
    -Username $username `
    -Password $password `
    -InputFile 'get_clientfile.sql' `
    -Variable $StringArray `
    | Out-File 'filename.txt'

Но, к сожалению, мой вывод ограничен:

myField
-----------------
BEGIN…

Я также пытался использовать MaxCharLength и MaxBinaryLength безрезультатно.

До сих пор я не нашел способ предотвратить усечение вывода.

Также обратите внимание, что он не соблюдает мои команды sqlcmd, такие как :setvar. Одним из способов обойти это, то, что -y действительно делает (я думаю), может быть установка SQLCMDMAXVARTYPEWIDTH на 0. Но я не могу найти способ установить такие переменные при использовании Invoke-SqlCmd.

Любая помощь высоко ценится!


person Frankie    schedule 13.03.2020    source источник
comment
Я надеюсь, что связанный ответ даст решение; дайте нам знать, если нет.   -  person mklement0    schedule 14.03.2020
comment
Я смог сделать это, добавив это в свой запрос | Format-Table -Wrap -HideTableHeaders. Спасибо!   -  person Frankie    schedule 14.03.2020