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

Откуда:
Сообщений: 54
Пытаюсь выполнить sql запрос

в Windows 8

sqlcmd -d myDB -i script.sql


результат:

result               
------------------------
           1111
           2222
(2 rows affected)


в Windows server 2012, ТОТ же самый скрипт

результат:

result               
------------------------
             
(0 rows affected)



причем если в самой базе выполнять скрипт, то результат всегда есть.

что такое может быть, измучался уже..(( ?
25 апр 14, 17:46    [15937417]     Ответить | Цитировать Сообщить модератору
 Re: Не выводится результат sqlcmd  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37050
Ошибка в скрипте может быть, в 17й строке.
25 апр 14, 18:54    [15937801]     Ответить | Цитировать Сообщить модератору
 Re: Не выводится результат sqlcmd  [new]
Glory
Member

Откуда:
Сообщений: 104760
smotritel89
причем если в самой базе выполнять скрипт, то результат всегда есть.

А в скрипте наверное параметры, которые зависят от логина, под которым выполняется скрипт ?
25 апр 14, 19:01    [15937843]     Ответить | Цитировать Сообщить модератору
 Re: Не выводится результат sqlcmd  [new]
smotritel89
Member

Откуда:
Сообщений: 54
не думаю. почему же на одном компе норм выполняется. а на сервере нет?

вот скрипт

set transaction isolation level snapshot
begin tran

;with LoginMessages as
(
select * from 

AppLog where action = N'Начало сессии' 
and message like N'%выполнен за %'
and message like N'%Web=Нет%'
and [time]>= GETDATE()-1
),
T1 as
(
  select 
    *, PATINDEX(N'%выполнен за %',message)+ LEN(N'выполнен за ') as TimeOffset
    from LoginMessages
),
T2 as
(
  select 
    *, CHARINDEX(N'с;',message,TimeOffset) as TimeOffsetEnd
    from T1
),
LoginDurations as
(
  select 
    *, cast( SUBSTRING(message,TimeOffset, TimeOffsetEnd- TimeOffset) as float) as Duration
    from T2
)
    
select Duration from LoginDurations order by time desc, id desc

commit tran
25 апр 14, 21:29    [15938392]     Ответить | Цитировать Сообщить модератору
 Re: Не выводится результат sqlcmd  [new]
Glory
Member

Откуда:
Сообщений: 104760
smotritel89
почему же на одном компе норм выполняется. а на сервере нет?

Запрос всегда выполняется на сервере
Проверяйте, под каким логином происходят ваши соединения с разных машин
25 апр 14, 21:44    [15938445]     Ответить | Цитировать Сообщить модератору
 Re: Не выводится результат sqlcmd  [new]
smotritel89
Member

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

имел ввиду Windows 8 и Windows Server 2012.

сейчас перепроверил логины. все идентично. оба owner к этой базе.

пробовал задать принудительно логин: -U sa -P pass, результат тот же..

когда неверный логин, то он вообще не выполняет скрипт. а тут выполняет, но результат пустой.


а может ли быть так что в момент выполнения, команды скрипты "прогоняются" через командную строку?
и т.е у меня же есть русские символы, а с ними выходит беда, и поэтому нормально выборку сделать не может?
25 апр 14, 22:01    [15938509]     Ответить | Цитировать Сообщить модератору
 Re: Не выводится результат sqlcmd  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31430
smotritel89
а может ли быть так что в момент выполнения, команды скрипты "прогоняются" через командную строку?
и т.е у меня же есть русские символы, а с ними выходит беда, и поэтому нормально выборку сделать не может?
Выполните для начала не этот скрипт, а тестовый, например, SELECT @@VERSION
25 апр 14, 23:19    [15938779]     Ответить | Цитировать Сообщить модератору
 Re: Не выводится результат sqlcmd  [new]
invm
Member

Откуда: Москва
Сообщений: 9397
smotritel89
а может ли быть так что в момент выполнения, команды скрипты "прогоняются" через командную строку?
и т.е у меня же есть русские символы, а с ними выходит беда, и поэтому нормально выборку сделать не может?
Профайлем смотрите какой запрос приходит на сервер.

sqlcmd у вас запускается без указания сервера, следовательно соединение устанавливается с локальным дефолтным инстансом, следовательно БД разные, следовательно и данные в таблицах могут различаться.
25 апр 14, 23:35    [15938840]     Ответить | Цитировать Сообщить модератору
 Re: Не выводится результат sqlcmd  [new]
smotritel89
Member

Откуда:
Сообщений: 54
invm
smotritel89
а может ли быть так что в момент выполнения, команды скрипты "прогоняются" через командную строку?
и т.е у меня же есть русские символы, а с ними выходит беда, и поэтому нормально выборку сделать не может?
Профайлем смотрите какой запрос приходит на сервер.

sqlcmd у вас запускается без указания сервера, следовательно соединение устанавливается с локальным дефолтным инстансом, следовательно БД разные, следовательно и данные в таблицах могут различаться.


действительно. в профайлере результат:

AppLog where action = N'Íà÷àëî ñåññèè' 
and message like N'%âûïîëíåí çà %'
and message like N'%Web=Íåò%'


как же можно поменять кодировку?
26 апр 14, 09:48    [15939529]     Ответить | Цитировать Сообщить модератору
 Re: Не выводится результат sqlcmd  [new]
smotritel89
Member

Откуда:
Сообщений: 54
Все, получилось, всем спасибо!

добавил ключ -f 1251.
26 апр 14, 09:53    [15939534]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить