2017-12-11 75 views
1

두 테이블 이름과 소수로 호출 할 저장 프로 시저를 만들려고합니다.SQL Server 저장 프로 시저 부동 매개 변수 및 소수 자릿수 전달

내 저장 프로시 저는 각 테이블의 행 수를 비교하여 차이가 있는지 확인합니다. 차이가 임계 값보다 크면 하나의 테이블을 비우고 다른 테이블의 데이터를 복사합니다.

내가 저장 프로 시저를 만들 수 있어요,하지만 난 그것을 호출하려고 할 때 오류 얻을 : 내 저장 프로 시저

Incorrect syntax near '/'

코드 :

CREATE PROCEDURE test 
    @table_name_one NVARCHAR(MAX), 
    @table_name_two NVARCHAR(MAX), 
    @threshhold FLOAT(53) 
AS 
BEGIN 
    SET NOCOUNT ON; 

    SELECT @table_name_one 
END 
GO 

EXEC test @table_name_one = 'a', @table_name_two = 'b', @threshhold = 1./3 

답변

1

당신은 설정 A를 필요 변수를 다음과 같이 전달하십시오. 매개 변수로 전달하는 동안 무언가를 계산할 수 없습니다.

DECLARE @th FLOAT = 1.0/3; 

EXEC test 
    @table_name_one = 'a' 
    , @table_name_two = 'b' 
    , @threshhold = @th; 
+0

하위 쿼리가 아니어도 되나요? – IMTheNachoMan

+1

아니요. 머리 꼭대기에서 생각할 수없는 몇 가지 예외가있을 수 있지만, 일반적으로 매개 변수를 다음과 같이 전달하려고합니다. []. [] @ p1 = '값', @ p2 = @ 변수를 실행하십시오. ..기타. –