Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQLCMD помошь  [new]
startDBA
Member

Откуда:
Сообщений: 174
привет всем!
нужна помошь разабратся в SQLCMD :
@echo off
SET dbname=dba
SET SERVERNAME=testdb04
FOR /F "usebackq tokens=1,2,3 delims=~" %%i IN (`sqlcmd -w200 -h-1 -E -S%SERVERNAME% -d%dbname% -iC:\temp\TEST_CONTROLM_LS\GetParam.sql`) DO (
set somevar1=%%i
set somevar2=%%j
set somevar3=%%k
)
ECHO %somevar1%
ECHO %somevar2%
ECHO %somevar3%

когда в GetParam.sql написанно: set nocount on; select convert(varchar(10),getdate()) + '~someval2~someval3'
получаю:
May 19 201
someval2
someval3

когда же : SET NOCOUNT ON; SELECT TOP 1 PrimaryServer + '~' + SecondaryServer + '~' + PrimaryDatabase FROM tbl_Config WHERE LogShippingEnable = 1
получаю :
ECHO is off.
ECHO is off.
ECHO is off.

где я ошибаюсь?
зарание благадарен!
19 май 11, 12:52    [10677424]     Ответить | Цитировать Сообщить модератору
 Re: SQLCMD помошь  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
startDBA
где я ошибаюсь?
зарание благадарен!
Может, просто нету записей в FROM tbl_Config WHERE LogShippingEnable = 1 ?
19 май 11, 14:22    [10678297]     Ответить | Цитировать Сообщить модератору
 Re: SQLCMD помошь  [new]
startDBA
Member

Откуда:
Сообщений: 174
alexeyvg,

есть:)....вот возрат с management studio:
SET NOCOUNT ON; SELECT TOP 1 PrimaryServer + '~' + SecondaryServer + '~' + PrimaryDatabase FROM tbl_Config WHERE LogShippingEnable = 1
set nocount on; select convert(varchar(10),getdate()) + '~someval2~someval3'
--------------------------------------
V-SQL2005~SQLDEV02~MY_db
May 19 201~someval2~someval3
19 май 11, 14:37    [10678457]     Ответить | Цитировать Сообщить модератору
 Re: SQLCMD помошь  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
startDBA
alexeyvg,

есть:)....вот возрат с management studio:
Не надо из management studio

Вставьте в этом-же командном файле вызов sqlcmd, без FOR:
sqlcmd -w200 -h-1 -E -S%SERVERNAME% -d%dbname% -iC:\temp\TEST_CONTROLM_LS\GetParam.sql
19 май 11, 16:19    [10679552]     Ответить | Цитировать Сообщить модератору
 Re: SQLCMD помошь  [new]
startDBA
Member

Откуда:
Сообщений: 174
alexeyvg,

@echo off
SET dbname=dba
SET SERVERNAME=testdb04
sqlcmd -w200 -h-1 -E -S%SERVERNAME% -d%dbname% -iC:\temp\TEST_CONTROLM_LS\GetParam.sql

FOR /F "usebackq tokens=1,2,3 delims=~" %%i IN (`sqlcmd -w200 -h-1 -E -S%SERVERNAME% -d%dbname% -iC:\temp\TEST_CONTROLM_LS\GetParam.sql`) DO (
set somevar1=%%i
set somevar2=%%j
set somevar3=%%k
)
ECHO %somevar1%
ECHO %somevar2%
ECHO %somevar3%


выдает:

V-SQL2005~SQLDEV02~MY_db

ECHO is off.
ECHO is off.
ECHO is off.
19 май 11, 16:35    [10679709]     Ответить | Цитировать Сообщить модератору
 Re: SQLCMD помошь  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
startDBA
выдает:
Это я уже читал

Без FOR вызовите.

Очевидно, у вас там ошибка выдаётся sqlcmd, но вы её увидеть не можете.
19 май 11, 16:53    [10679884]     Ответить | Цитировать Сообщить модератору
 Re: SQLCMD помошь  [new]
startDBA
Member

Откуда:
Сообщений: 174
alexeyvg,

обрати внимание там две строки одна с FOR а другая без...та каторая без выдает нормально...
если есть возможность передать в параметры с каторыми можно вызвать из этого бат файла другой SQLCMD не изпользуя FOR ..буду рад услышать....

даже если я так запускаю вместо импут файла сам запрос FOR /F "usebackq tokens=1,2,3 delims=~" %%i IN (`sqlcmd -w200 -h-1 -E -S%SERVERNAME% -d%dbname% -Q"SET NOCOUNT ON; SELECT TOP 1 PrimaryServer + '~' + SecondaryServer + '~' + PrimaryDatabase FROM tbl_Config WHERE LogShippingEnable = 1"`) DO (

все равно получаю в ответ

ECHO is off.
ECHO is off.
ECHO is off.
19 май 11, 17:00    [10679936]     Ответить | Цитировать Сообщить модератору
 Re: SQLCMD помошь  [new]
startDBA
Member

Откуда:
Сообщений: 174
нашел в чем проблема ....на каждый возрашаемый стринг нужен конверт:

SELECT CONVERT(varchar(50),@PrimaryServer)+'~'+CONVERT(varchar(50),@SecondaryServer)+'~'+CONVERT(varchar(50),@PrimaryDatabase)
19 май 11, 17:13    [10680038]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить