Q&A

  • SQL 에서 테이블명을 파라미터로 받을 수 있는 방법 ?
stored procedure 에서 파라미터로 테이블명을 받아서 처리할 수 있는 방법이 없을까요 ? 예를 들어 다음과 같은 경우에 @tableName 은 'tableName' 의 문자값이 들어 있어 처리가 안됩니다. 'tableName' 을 tableName 으로 바꾸거나 다른 방법이 있는지 알려주시면 감사하겠습니다.

------------------
create proceudre sp_test (@tableName varchar(20))

as

select field1,field2 from @tableName
...
...

end
------------------

4  COMMENTS
  • Profile
    강형철 2003.06.19 03:29
    데이타베이스가 MS-SQL Server라면 간단하네요... 아니면 다른방법을 해보세요

    create proceudre sp_test (@tableName varchar(20))
    as

    exec( 'select field1,field2 from ' + @tableName )

    end
  • Profile
    아폴론 2003.06.19 03:18

    이것이 도움이 될까요?

    Q&A에서 검색하면 다 나오는 내용 입니다
    정리만 했습니다.

    변수를 선언합니다 팔요한 만큼
    V_field := 필드명
    V_db := 디비명
    ..


    Select, From 절에서의 변수 활용
    SQL.Add('Select T_Field1, '+ V_field +' , T_field4  From  '+ V_db +' ');

    where 절에서의 변수 활용
    SQL.Add('where T_Field1 = :Field1 and  '+ V_field +' = :Field2  and ... ');

    Order by 절에서의 변수 활용
    Order by  '+ V_Field +'

    이런식으로 하면 UpDate, Inaert Delete 문 모두 변수로 사용 할 수 가 있습니다.
  • Profile
    KDDG_ZZOM 2003.06.19 03:07
    다이나믹 sql문으로 하시면 될것같네요...
    사용하시는 데이타베이스의 프리페어문을 참조하세요...

    즐프하세요...

  • Profile
    배건환 2003.06.19 02:34
    없는 걸로 알고 있습니다.

    차라리 이걸 Delphi에서 함수로 만들어 처리하는게 낫지 않을까 싶네요.

    그럼 즐코요~!