sql-server
  • sql-server-2012
  • sequences
  • 2016-07-11 1 views 0 likes 
    0

    SQL Server에서 선언 된 변수에 값을 설정하는 방법.SQL Server에서 선언 된 변수에 값을 설정하는 방법

    Must declare the scalar variable "@V_SEQUENCE"'

    방법 @V_SEQUENCE의 결과를 얻을하는 방법을 가르쳐주세요 :

    DECLARE @V_SEQUENCE INT, @V_SEQUENCENAME NVARCHAR(MAX); 
    SET @V_SEQUENCENAME = 'dbo.MYSEQ'; 
    EXEC('SELECT @V_SEQUENCE = NEXT VALUE FOR ' + @V_SEQUENCENAME) 
    SELECT @V_SEQUENCE 
    

    여기에 내가 오류를 얻고있다.

    +0

    시퀀스 이름이 상수이면 동적 SQL이 필요하지 않습니다. –

    +0

    시퀀스 이름은 동적입니다. 예를 들어 정적 이름을 언급 한 것입니다. – Srinivas

    답변

    6

    실행 중에 값을 전달하려고합니다. sp_executesql을 사용하는 것이 좋습니다.

    DECLARE @V_SEQUENCE INT, @V_SEQUENCENAME NVARCHAR(MAX), @SQL NVARCHAR(MAX); 
    SET @V_SEQUENCENAME = 'dbo.MYSEQ'; 
    SELECT @SQL = 'SELECT @V_SEQUENCE = NEXT VALUE FOR ' + @V_SEQUENCENAME; 
    
    EXEC sp_executesql @SQL, N'@V_SEQUENCE INT OUTPUT', @V_SEQUENCE = @V_SEQUENCE OUTPUT; 
    
    SELECT @V_SEQUENCE; 
    
    +0

    감사합니다. 이제 예상 결과가 나옵니다. – Srinivas

    관련 문제