안녕하세요.. 초보 SQL개발자입니다.
같은 구조에 테이블을 여러게 만든후 SP에서 테이블 인덱스를 넘길때마다 해당 테이블에 있는 내용을 호출하고 싶은데 제가 알고 있는 방법말고 다른 방법이 있는지 궁금합니다.
table_0
{
int useridx
}
table_1
{
int useridx
}
table_2
{
int useridx
}
방법1>
if tableindx = 0
select * from table_0
else if tableindx = 1
select * from table_1
else if tableindx = 2
select * from table_2
....
방법2>
set @sql = 'select * from table_' + tableindex
exec (@sql)
제가 알고있는방법이 이 2가지인데.. 1번은 SP내용이 좀있는경우.. copypaste이 너무많아 sp가 지저분해지고,
2번 동적쿼리는 성능 안좋다고 들었거든요..
빈번히 호출되는 Sp인데. 다른 방법이 있을까요?
고수님에 조언이 필요합니다. 꾸벅.
cf> 테이블 파라미터로 tableindex 필드를 추가해서 DB를 구성하는건 빼구요^^;
exec sp_executesql 을 사용해서 파라미터 바인딩하는 방법이 있겠네요,,,
이 경우에는 쿼리 종류만큼 플랜이 생기니, 위의 exec(@sql) 보다는 좋을 수 있습니다,,,,