Вопрос:

Увеличение SQL Select Query Select to Text

sql sql-server

55 просмотра

2 ответа

4 Репутация автора

Требования к файлу, над которым я работаю, состоят в том, что каждая запись должна иметь длину 1500, проблема в том, что вывод не будет отображать всю строку данных, он остановится на позиции 260. Есть ли способ увеличить это?

Оператор select ниже является примером:

SELECT SPACE(25) + 'C'
    + SPACE(80) + 'TT' + employeer_id
    + SPACE(80) + employee_id + CONVERT(VARCHAR(8), GETDATE(), 112)
    + SPACE(210) + CONVERT(VARCHAR(8), start_date, 112)
    + SPACE(200) + state + '1'
    + SPACE(150) + 'R'
    + SPACE(52) + address
    + SPACE(80)
Автор: David Источник Размещён: 13.08.2019 10:39

Ответы (2)


0 плюса

4311 Репутация автора

Я подозреваю, что там есть поле с ограничением varchar, которое заставляет SQL думать, что длина строки должна быть всего 260 символов. Являются ли поля employee_id и employeeer_id строками? Если нет, то вы должны CAST их в запросе. Если вы используете более позднюю версию SQL, вы можете попробовать функцию CONCAT:

SELECT TOP(1) OutputRow = CONCAT(
        SPACE(25) , 
        'C' , 
        SPACE(80) , 
        'TT' , 
        CAST([employeer_id] AS VARCHAR(25)) , 
        SPACE(80) , 
        CAST([employee_id] AS VARCHAR(25)) , 
        CONVERT(VARCHAR(8), GETDATE(), 112) , 
        SPACE(210) , 
        CONVERT(VARCHAR(8), [start_date], 112) , 
        SPACE(200) , 
        [state] , 
        '1' , 
        SPACE(150) , 
        'R' , 
        SPACE(52) , 
        [address] , 
        SPACE(80)
    )
FROM [dbo].[YourTable] ;

В противном случае попробуйте объявить переменную VARCHAR (1500) и присвоить ей свое значение:

DECLARE @OutputRow VARCHAR(1501)
SELECT TOP(1) @OutputRow = 
    SPACE(25) + 
    'C' + 
    SPACE(80) + 
    'TT' + 
    CAST([employeer_id] AS VARHCAR(25)) + 
    SPACE(80) + 
    CAST([employee_id] AS VARHCAR(25)) + 
    CONVERT(VARCHAR(8), GETDATE(), 112) + 
    SPACE(210) + 
    CONVERT(VARCHAR(8), [start_date], 112) + 
    SPACE(200) + 
    [state] + 
    '1' + 
    SPACE(150) + 
    'R' + 
    SPACE(52) + 
    [address] + SPACE(80)
FROM [dbo].[YourTable] ;

SELECT @OutputRow;
Автор: Russell Fox Размещён: 13.08.2019 10:52

0 плюса

1610 Репутация автора

Может ли это быть такой настройкой? (в разделе Инструменты | Параметры)

введите описание изображения здесь

Этот параметр влияет на вывод, если вы используете этот скрипт из другого приложения, он относится только к информации, отображаемой в SSMS.

Автор: Trubs Размещён: 14.08.2019 01:43
Вопросы из категории :
32x32