책보며, 독학하는 와중에... 아래와 같이 짠 쿼리를 돌리면, DB에 'Temp_MaxID_20140422'이라는 테이블이
생길거라 기대했는데, 계속 'Incorrect syntax near '@TotDate1'' 라는 에러가 뜹니다.
어디가 잘 못 된 건지요? 2시간째 요리저리 바꿔바도 같은 결과,.... ㅠ.ㅠ
DECLARE @DHeader varchar(11) = 'Temp_MaxID_';
DECLARE @TodayIs varchar(10) = Replace(CAST(getdate() AS date), '-', '');
Declare @TotDate1 varchar(21) = @DHeader + @TodayIs;
CREATE TABLE @TotDate1
(
[Co_ID] [int] NULL,
[Et_ID] [int] NULL,
[Lg_ID] [int] NULL,
) ON [PRIMARY] ;
GO
Comment 7
-
항해자™
2014.04.22 16:05
-
디비디비
2014.04.22 16:18
감사합니다. 항해자님!
그런데, 돌려보니....아래와 같은 오류가 납니다.
Must declare the scalar variable "@DHeader".
-
Hisory
2014.04.22 16:45
DECLARE @DHeader varchar(11) = 'Temp_MaxID_'
,@TodayIs varchar(10) = convert(char(8),getdate(),112)
DECLARE @TotDate1 varchar(21) = @DHeader + @TodayIs;CREATE TABLE #TotDate12
(
[Co_ID] [int] NULL,
[Et_ID] [int] NULL,
[Lg_ID] [int] NULL,
) ON [PRIMARY] ;
GO -
CREATE TABLE 다음에 변수가 올수가 없습니다.
CREATE TABLE @A 이런식은 안되요
CREATE TABLE 테이블이름 이런식이어야 합니다.
-
디비디비
2014.04.22 17:12
ㅠ.ㅠ
검색해 보니, 동적쿼리로 table에 변수를 넣는 방법이 있다고 하는데... 그거 마저도 오류가...!!! 계속 삽질을 하다보면, 될 때가 있겠죠!!!ㅠ.ㅠ 감사합니다.
-
동적 쿼리로 하시겠다면 전체 문장을 문자열 변수 안에 넣으셔아합니다.
set @a = 'create table ' + @변수.... 이런식으로
그리고 execute (@a) ....
-
철스
2014.04.28 17:55
DECLARE @DHeader varchar(11) = 'dbo.Temp_MaxID_';
DECLARE @TodayIs varchar(10) = Replace(CAST(getdate() AS date), '-', '');
Declare @TotDate1 varchar(21) = @DHeader + @TodayIs;
DECLARE @sql varchar(200) = '';
--select @DHeader, @TodayIs, @TotDate1set @sql = '
CREATE TABLE '+@TotDate1+'
(
[Co_ID] [int] NULL,
[Et_ID] [int] NULL,
[Lg_ID] [int] NULL,
) ON [PRIMARY] ;
'
--print(@sql)
exec(@sql)
,@TodayIs varchar(10) = convert(char(8),getdate(),112)
,@TotDate1 varchar(21) = @DHeader + @TodayIs;
CREATE TABLE #TotDate1
(
[Co_ID] [int] NULL,
[Et_ID] [int] NULL,
[Lg_ID] [int] NULL,
) ON [PRIMARY] ;
GO