2010-12-10 2 views
1

나는 두 개의 ID를 교환하는 스크립트에 노력하고있다는 라운드 기본 키입니다보고 서비스 저장 procedues

CREATE PROCEDURE dbo.ID 
    @OldName NVARCHAR(128), 
    @NewName NVARCHAR(128) 
AS 
    DECLARE @NewId INT, @OldId INT 

    CREATE TABLE TmpTable (ID INT, Name NVARCHAR(128)) 

    INSERT INTO TmpTable (Name,ID) 
    VALUES (@NewName, (SELECT ID FROM Table1 WHERE [Name] = @NewName)); 

    INSERT INTO TmpTable (Name,ID) 
    VALUES(@OldName, (SELECT ID FROM Table1 WHERE [Name] = @OldName)) 

    UPDATE Table1 
    SET ID = (SELECT MAX(ID) + 1000 FROM Table1) 
    WHERE [NAME] = @NewName 

    UPDATE Table1 
    SET ID = (SELECT MAX(ID) + 2000 FROM Table1) 
    WHERE [NAME] = @OldName 

    UPDATE Table1 
    SET ID = (SELECT ID FROM TmpTable WHERE Name = @NewName) 
    WHERE [Name] = @OldName 

    UPDATE Table1 
    SET ID = (SELECT ID FROM TmpTable WHERE Name = @OldName) 
    WHERE [Name] = @NewName 

    DROP TABLE TmpTable 
go 

내가 지금하려고하는 것은보고 서비스를 어디에서 보고서로이 작업을 실행하는 것입니다 NewNAme 및 OldNAme Table1 테이블을 쿼리하는 드롭 다운 상자에서 선택됩니다. 현재이 코드를 가져 오려고하면 값을 묻습니다.

  1. 저장 프로 시저를 보고서로 가져 오는 방법은 무엇입니까?
  2. [이름] 열을 쿼리하는 드롭 다운 상자는 어떻게 얻을 수 있습니까?

답변

0

이 나는 ​​테이블 릭스 나에게 그 기본 반환 값을 얻을 수

exec ID 1,2 

같은 저장 프로 시저를 가져 텍스트를 사용하여, 대부분의 시간을 보고서 마법사를 사용하고있다. 그러나 귀하의 경우에는 선택 회수가 없으므로 적용되지 않습니다.

마법사가 보고서를 만든 후에 데이터 집합을 마우스 오른쪽 단추로 클릭하고 저장된 프로 시저를 선택합니다. 필드 새로 고침을 클릭하면 매개 변수가 자동으로 추가됩니다.

보고서 매개 변수를 드랍 다운하려면 데이터 소스가 필요합니다. select 문이나 다른 저장된 proc을 기반으로 새 데이터 집합을 추가하여 필요한 값을 선택합니다. 이제 사용 가능한 값 탭으로 이동하고 값 드롭 다운을 제공하는 데이터 집합을 선택 "쿼리에서 값 가져 오기"를 선택할 수 있습니다

오른쪽 매개 변수 특성을 매개 변수를 클릭하여 선택합니다.

드롭 다운 작동 방식을 미세 조정할 수있는 null 등 허용과 같은 다른 옵션이 있습니다.

왜 값을 반환하지 않고 표시되는 SQL을 실행하는 보고서가 필요한지 궁금합니다. 사용자에게 그런 식으로 뭔가를 돌릴 수있는 더 좋은 방법이있을 것 같습니다.

1

보고서 엉덩이 데이터 소스에 저장 프로 시저를 추가하면 ssrs가 자동으로 보고서 매개 변수 보고서 매개 변수에 매개 변수를 추가합니다.

매개 변수를 드롭 다운하여 지정하려면 웹 응용 프로그램과 같은 응용 프로그램을 작성하고이 매개 변수를 보고서에 전달해야합니다.