Как вставить значения в другой столбец таблицы SQL, где первый столбец принимает значения с помощью execute xp_cmdshell? - PullRequest
0 голосов
/ 25 апреля 2018

Я вставляю имя файла .bak в таблицу sql (TMP) из папки, содержащей файлы .bak, используя следующий код.

**

CREATE  table TMP(FILENAME VARCHAR(100))
declare @filename varchar(100)
declare @filepath varchar(100)='S:\Common\Backups\'
insert into TMP execute xp_cmdshell 'dir S:\Common\Backups /b'

**

Теперь мне также нужно вставить дату / время файлов в этой папке.Как вставить дату / время или сказать любую другую переменную в той же таблице (в данном случае TMP)

Когда я пытаюсь использовать приведенный ниже код, выдается сообщение об ошибке

insert into TMP (FILENAME,DATE_Modified) values(execute xp_cmdshell 'dir S:\Common\Backups /b',01/01/2000 )

Сообщение об ошибке: Имя столбца или Количество предоставленных значений не соответствует определению таблицы

Как вставить другую переменную в другой столбец той же таблицы ??

1 Ответ

0 голосов
/ 25 апреля 2018

Не пытались ли вы установить переменную перед вставкой и вернуть filepath из хранимой процедуры

DECLARE @return varchar(100)
EXEC @return = xp_cmdshell 'dir S:\Common\Backups /b'
insert into TMP (FILENAME,DATE_Modified) values(@return,GETDATE()) --change to your Date or keep it for current date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...