2016-10-11 8 views
0

У меня есть отчет с 3 параметрами. Проблема в том, что я хочу, чтобы данные вводились в один из этих параметров. Если данные присутствуют в нескольких параметрах, я хочу, чтобы конечный пользователь получил предупреждающее сообщение. Причина этого заключается в том, что в зависимости от того, какой параметр имеет данные, он создает отдельную временную таблицу для компиляции данных результата. Если введено более одного, это приведет к блокировке SQL-сервера. Я на SQL 2008. Как я могу это сделать?SSRS - Только данные могут быть введены в один параметр

Вот мои параметры в SSRS:

enter image description here

... и вот моя ХП. Если один из параметров содержит значение, нулевое значение передается к двум другим параметрам

CREATE PROC [dbo].[uspS_SerialNumberLookupReport] @_SalesOrder AS VARCHAR(10) ='', @_AQNum AS VARCHAR(10) ='', @_Serial AS VARCHAR(10) ='' 
AS 


IF OBJECT_ID('tempdb..#SerialNumberLookupReport') IS NOT NULL 
DROP TABLE #SerialNumberLookupReport 

CREATE TABLE #SerialNumberLookupReport 
(Company varchar(1), 
Serial varchar(15), 
StockCode varchar(30), 
Description varchar(50), 
SalesOrder int, 
OrderDate datetime, 
ReqShipDate datetime, 
CustomerPoNumber varchar(10), 
CustomerName varchar(50), 
ShippingInstrs varchar(50), 
ShippingCarrier varchar(50), 
ShippingLink varchar(1000)) 

INSERT INTO #SerialNumberLookupReport 

EXEC uspS_SerialNumberLookupX @[email protected]_SalesOrder, @[email protected]_AQNum, @[email protected]_Serial 

INSERT INTO #SerialNumberLookupReport 

EXEC uspS_SerialNumberLookupE @[email protected]_SalesOrder, @[email protected]_AQNum, @[email protected]_Serial 

SELECT DISTINCT 
    Company 
    ,Serial 
    ,StockCode 
    ,Description 
    ,SalesOrder 
    ,OrderDate 
    ,ReqShipDate 
    ,CustomerPoNumber 
    ,CustomerName 
    ,ShippingInstrs 
    ,ShippingCarrier 
    ,ShippingLink 
FROM #SerialNumberLookupReport 

ответ

2

вы могли бы использовать 2 параметра вместо, как

enter image description here

ответить комментарий: вы могли бы используйте ваши существующие параметры в качестве переменных:

create proc some_stored_proc 
(@id_type varchar(30) , @value varchar(50)) 
as 

    declare 
    @SalesOrder varchar(50) null, 
    @Serial varchar(50) null, 
    @AQ varchar(50) null 

    if @id_type = 'Sales Order#' 
    set @SalesOrder = @value 
    else 
    if @id_type = 'Serial#' 
    set @Serial = @value 
    else 
    if @id_type = 'AQ#' 
    set @AQ = @value 
+0

Хорошая идея. Как мне отредактировать мой отчет и запросить этот подход? Сейчас он использует proc с этими тремя параметрами. – jdidsQAA

+0

Я сделал обновление, но я не уверен, что этот подход будет работать на вас. – Kostya

+0

Спасибо за ваш вклад. Я пробовал это и, к сожалению, не работал с передачей значений в существующую хранимую процедуру. – jdidsQAA

Смежные вопросы