2013-02-14 1 views
0

SQL Server에서 데이터 유형을 실행하고 싶습니다. 내가해야 할 일이 뭔지 알아 냈어? SQL Server - 프로 시저 실행 데이터 SQL Server에 입력

USE [MO] 
GO 

DECLARE @return_value int 

EXEC @return_value = [dbo].[SBC] 
     @UserId = 1, 

SELECT 'Return Value' = @return_value 
GO 

반환 값 : 예 ID를 들어

Name ID 
---------- 
Adam 1 
Jhon 2 

int 또는 bigint입니까? 기존 프로 시저 만 실행할 수 있으며 여기에 문제가 있습니다.

+0

정확히 무엇이 필요하고 무엇이 문제입니까? Didnt는 그것을 얻었습니다 – DevelopmentIsMyPassion

+0

제발 맑게해라. ..? 우리는 당신이 원하는 것을 얻지 못하고 있습니다. –

+0

반환 된 값의 유형에 대한 정보가 필요합니다. 예를 들어 Name은 "varchar"또는 "nvarchar"입니다. Id는 "int"또는 "bigint"입니다. –

답변

0

'반환 값'은 실행 상태 표시기를 의미하며 정수입니다. 다시 데이터를 전달하는 것이 아닙니다. 표준 값은 성공시 0, 실패 인 경우 1이지만 SP의 정수를 다시 전달하여 여러 가지 상태를 반영 할 수 있습니다. 은 SQL Server 도움말 파일에서

:

RETURN_STATUS @는 모듈의 반환 상태를 저장하는 옵션 정수 변수입니다. 이 변수는 EXCHUTE 문에서 사용되기 전에 일괄 처리, 저장 프로 시저 또는 함수에서 선언되어야합니다.

스. 라 값 사용자 정의 함수를 호출하는 데 사용될 때, @ return_status 변수는 스. 라 데이터 유형이 될 수 있습니다.

다른 데이터 유형을 전달하고 ('유형'을 쿼리 할 수 ​​있어야 함) '출력 매개 변수'를 사용하십시오. 출력 매개 변수는 모든 데이터 유형이 될 수 있으며 일단 SP가 존재하면 SP의 object_id를 전달하고 sys_parameters 시스템 테이블을 쿼리하거나 object_id 및 필터 프로 시저 이름의 sys.procedures에 조인하고 sys .parameters를 sys.types (user_type_id에)로 설정하면 출력 매개 변수를 포함하여 각 매개 변수의 sql 데이터 형식 이름을 얻을 수 있습니다.

예 스칼라 값 함수에 대한

DECLARE @Param3 bigint 
exec dbo.MySPName @Param1, @Param2, @Param3 output 
SELECT @Param3 --gives you output value 

--This will give you the names and data types of all output parameters in this SP 
SELECT p.name, t.name as [type], p.max_length, is_output 
FROM sys.parameters p 
JOIN sys.types t ON p.user_type_id = t.user_type_id 
WHERE p.object_id = OBJECT_ID(N'MySPName') 
AND p.is_output = 1 

는, 매개 변수 및 유형 테이블에서이 같은 쿼리 (p.name은/빈 빈 문자열) 이름없는 매개 변수를 반환합니다 -이 데이터 유형을 포함 UDF에 대한 반환 값을 나타냅니다 . 그러나 상점 프로시 듀어는 '리턴 상태'정수만 가질 수 있습니다.

관련 문제