2015-09-21 4 views
-2

Ниже запросы в sql дают странные результаты. Пожалуйста, помогите мне понять, почему это происходит.SQL-запрос ведет себя странно

exec sp_executesql N'SP_MNP_DownLoadFiles @FileTypeId,@UserId',N'@FileTypeId smallint,@UserId bigint',@FileTypeId=2,@UserId=18 -- This query returns nothing 

Exec SP_MNP_DownLoadFiles @FileTypeId=2,@UserId=18 -- This query returns some result 

Select Type as FileTypeId ,FileStream as Attachment FROM MNPFiles 
     where CustomerId = 18 
     AND 
     Type = 2 -- This is the query inside SP. 

Учитывайте, что типы данных одинаковы во всем мире.

Что я здесь делаю неправильно?

+1

«Поступая странно». Да, голосование закрывается. – Blindy

+0

Вы спрашиваете, почему выполнение proc с использованием 'sp_executesql' ничего не возвращает, но работает прямой' Exec'? – Siyual

+0

Вы правы, я запустил его, и он ничего не сделал :( –

ответ

2

Ваша динамическая строка SQL не соответствует вашему нединамическому выражению.

exec sp_executesql N'EXEC SP_MNP_DownLoadFiles ...',... 
        ^^^^ 

Другие вещи, чтобы проверить:

  1. Другие SELECT с в хранимой процедуре до вашего основного. Возможно, вам понадобится SET NOCOUNT ON.
  2. , что вы не RETURN ИНГ что-то перед вашим основным запросом
+0

Спасибо @Cory Я собираюсь проверить эти вещи. – user5360441