2011-10-13 2 views
1

MSSQL을 처음 사용합니다. 조건에 따라 동일한 select 문에서 조건을 변경해야합니다. Where 절을 하나의 변수에 저장하고 그 변수를 select 문 where 절에 할당하려고합니다. 이처럼 조건부에서 조건이 동일 할 때 선택 조건문의 조건

..

declare @test varchar(max); 
declare @test1 varchar(max); 
set @test=' id = 14'; 
select FirstName from tblUser where @test; 

그러나 그렇게 약간의 오류가 발생했습니다.

처럼 :

Msg 4145, Level 15, State 1, Line 4 
An expression of non-boolean type specified in a context where a condition is expected, near ';'. 

...이 흐름을 구현하는 나에게 당신은 실행을위한 변수의 전체 상태를 저장할 수 없습니다

답변

0

동적 SQL을 사용하여 수행 할 수 있습니다. 자세한 내용은 Obed의 답변에서 링크를 참조하십시오

declare @test nvarchar(max); 
    create table tblUser (id int, FirstName varchar(10)) 
    set @test=N' id = 14'; 
    set @test=N'select FirstName from tblUser where '[email protected] 
    exec sp_executesql @test; 

    drop table tblUser 
+0

우리는 이것을 exec 명령을 사용하지 않고도 할 수 있습니까 ??? –

+0

나는 생각한다. 어쩌면, 다른 누군가가 당신에게 더 나은 해결책을 제공 할 것입니다. –

1

감사합니다 ...에서 어떤 다른 방법을 알려주세요 특히 열 이름이 포함 된 경우

동적 SQL을 사용하려는 경우이 작업을 수행 할 수 있지만 그 자체의 문제가 있습니다. This 동적 SQL에 대한 기사 (동적 SQL의 저주와 축복).

나는 그렇게 할 필요가 있습니다.