2013-05-02 5 views
0

동적으로 테이블을 만들 수 있습니까? 내 웹 응용 프로그램에서는 "INFO_2013" (올해) (즉) 2013 테이블에 데이터를 저장해야합니다. 시스템 날짜가 2014로 변경되면 새 테이블을 "INFO_2014"으로 만들어야합니다 해당 값을 테이블에 추가해야합니다.아이디어를 동적으로 테이블을 만들려면

참고 : 또한 테이블은 동일한 DB에 있어야합니다.

답변

6

이 방법을 사용하지 마십시오.

YEAR 열이있는 하나의 테이블을 만들면 그 연도를 식별 할 수 있습니다. 당신이 큰에 점점 테이블에 대한 woried 있다면 그것 또한

는, 당신은이 너무

Index Basics

Types of Indexes

에서 봐 가지고있다 Creating Partitioned Tables and Indexes

를 살펴 할 수 있습니다

+0

예. 더 나은 접근 방법입니다. 하지만 중요한 것은 매일 50 레코드를 삽입해야한다는 것입니다.이 경우 1 개월 동안 거의 1500 레코드를 업데이트해야합니다. 1 년 동안 무슨 일이 일어나는가. 만약 내가 거의 5 년간 가치를 저장한다면, 어떻게 될까 ??? 그래서 솔루션을 찾고 있습니다 .... –

+0

더 간단 할 수도 있습니다. 테이블에 날짜 또는 datetime 필드가 있으면 연도를 결정하는 데 사용할 수 있습니다. –

+0

@Elango_Thanumalayan, 당신은 매우 작은 데이터베이스를 설명하고 있습니다. 또한 테이블 수에 관계없이 같은 수의 레코드입니다. 방관자의 접근 방식은 당신이 생각하고있는 것보다 훨씬 더 쉽게 인생을 만듭니다. –

0

시험보십시오 :

DECLARE @sql NVARCHAR(2000) 
DECLARE @table NVARCHAR(100) 

SET @table = 'INFO_2013' 

SET @sql = N'CREATE TABLE '[email protected]+' 
(
RollNumber INT 
,Name VARCHAR(50) 
)' 

EXECUTE SP_EXECUTESQL @sql 
+0

이 답변은 OP의 질문을 충족 ​​시키지만, [astander 's answer] (http://stackoverflow.com/a/16337602/745511)가 더 나은 방법입니다. –

+0

@Anu,이 쿼리를 설명해 주시겠습니까? –

+0

이것은 매우 간단합니다. Create table 명령으로 문자열을 작성한 후 실행했습니다. 말해봐, 어떤 부분에 쿼리가있다. 감사. – Anvesh