| 
        
 
  
        
              violeter33 
                  2007-07-19 오후 3:54:21 
             | 
            
                이건 정적 쿼리군요..
 
 동적 쿼리로변환 해서 사용해보세요..
 
 만약 MS-SQL 이 2000 이라면..
 
 이구문은 동작하지 않을것 같네요..
 
 동적쿼리라면 가능할거 같습니다..    
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              choiyw2 
                  2007-07-19 오후 4:53:18 
             | 
            
                CREATE TABLE TEST_TABLE
 (
     NUM INT,
     NUM2 INT
 )
 
 CREATE PROC AA
     @TABLE VARCHAR(50)
 AS
     DECLARE @AA VARCHAR(3000)
 
     SET @AA = '
     INSERT INTO ' + @TABLE + ' 
     (NUM,NUM2) VALUES (1,2)
     '
     EXEC (@AA)
 GO
 
 AA 'TEST_TABLE'
 
 초 간단예제 ㅡㅡㅋ    
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              violeter33 
                  2007-07-19 오후 5:29:42 
             | 
            
                예제 성의 없어~ 
 
 영유 성의 없어~
 
 영유는 있는게 없어~    
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              nasmaki 
                  2007-07-19 오후 5:34:12 
             | 
            
                답변 감사합니다.. MS SQL 2000 쓰고 있습니다..
 choiyw2 님이 말씀하신대로
 DECLARE @SQL    varchar(1000)
 SET @SQL = 'INSERT'+"@테이블변수명"+''
        +'(필드명, 필드명, 필드명)'
        +'VALUES'
        +'('+@변수명+','+@변수명+','+@변수명+')'
 BEGIN TRAN
          EXEC(@SQL)
 IF @@ERROR = 0
          COMMIT TRAN
 ELSE
          ROLLBACK TRAN
 
 return @@ERROR
 GO
  이렇게 바꿨는데도.ㅠㅠ.. 안되네요..ㅠㅠ 왜그럴까요.ㅠㅠ    
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              violeter33 
                  2007-07-19 오후 7:00:26 
             | 
            
                동적 쿼리를 사용할때..
 
 '',"".. 이것을 주의 하셔야 해요..
 
 테이블명 변수에 " " 가있는데요..
 
 빼고 한번 해보세요..
 
 
     
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              nasmaki 
                  2007-07-19 오후 7:48:23 
             | 
            
                violeter33님,, 답변감사합니다...
 근데.. 빼두 안돼요.ㅠㅠ.. 벌써 하루종일 거짓말 하나두 안붙이구
 백여번은 더 이리저리 시도해 본거 같아요..ㅠㅠ..
 바본가..ㅠ_ㅠ.. 왜케 안되지.ㅠㅠ..    
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              choiyw2 
                  2007-07-20 오전 8:23:19 
             | 
            
                EXEC (@SQL)을 PRINT (@SQL) 로 바꿔서 전체 구문을 출력해보세요``
 
 띄워쓰기 조심하시구요
 
 문자열이면  ' 로 한번 더 감싸주는 센스!
 
 구문 올려주시면 바꿔드릴께요`~`
 
     
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              nasmaki 
                  2007-07-20 오전 8:47:34 
             | 
            
                CREATE PROCEDURE 샬라샬라
 ~~~~
 ~~~~
 AS
 
 DECLARE @SQL VARCHAR(1000)
 
 SET @SQL = 'INSERT'''+@FA+
                    '''(필드1, 필드2, 필드3, 필드4, 필드5, 필드6, 필드7, 필드8,
                        필드9, 필드10, 필드11, 필드12, 필드13)''''
                        VALUES''''
                        ('+변수1+','+변수2+','+변수3+','+변수4+','+변수5+',
                         '+변수6+','+변수7+','+변수8+','+변수9+','+변수10+',
                         '+변수11+','+변수12+','+변수13+')'
 BEGIN TRAN
           EXEC(@SQL)
 IF @@ERROR = 0
           COMMIT TRAN
 ELSE
           ROLLBACK TRAN
 
 return @@ERROR
 GO    
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              nasmaki 
                  2007-07-20 오전 8:49:50 
             | 
            
                구문은 위와 같구요,,
 변수값에 "가나다-가" 이런식으로 하이픈이 들어가는데요,,
 크게 상관은 없나 해서요..
 고쳐 주시면 감사하겠습니다.ㅠ    
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              violeter33 
                  2007-07-20 오전 9:20:40 
             | 
            
                박용준 선생님 자료 찾아보면 다 있는데요..
 
 이렇게 예제 만들어 봤습니다..
 
 Create Table test1
 (
     Id Int ,
     Name VarChar(100)
 )
 go
 
 Create Table test2
 (
     Id Int ,
     Name VarChar(100)
 )
 go
 
 Create Proc UP_Test_Add
     @Table_Name VarChar(50),
     @Id Int,
     @Name VarChar(100)
 as
     --[1]
     Declare @strSql VarChar(500)
     
     --[2]
     Set @strSql = '    Insert ' + @Table_Name + ' (Id, Name) Values (' + cast(@Id as VarChar(10)) + ', ''' + @Name + ''')'
     
     --[3]
     exec(@strSql)
 Go
 
 UP_Test_Add 'test1', 1, '레드플러스 만세~'
 go
 UP_Test_Add 'test2', 1, '레드플러스 만세~'
 go
 Select * From test1
 go
 select * From Test2
 go    
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              violeter33 
                  2007-07-20 오전 9:22:01 
             | 
            
                동적 쿼리 작성할때..
 
 프로시져 내에서 쿼리문을 담을 변수에서는요..
 
 int 형은 varchar 로 변환 해야 하구요..
 
 문자열은 '' 두번으로 묶어야 합니다..
 
 수고하세요~    
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              choiyw2 
                  2007-07-20 오전 9:49:06 
             | 
            
                무성의해!    
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              violeter33 
                  2007-07-20 오전 10:50:28 
             | 
            
                시꾸라..
 
 니 예제 하고 비교를 해봐~
 
 성의도 없고..
 
 예의도 없고..
 
 구타나 유발..
 
 하여간 영유..
 안되안 돼안..    
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              choiyw2 
                  2007-07-20 오후 12:25:54 
             | 
            
                즐!즐!즐!즐!즐!    
             | 
            
                 
             | 
        
  
    
         | 
    
	
        
              nasmaki 
                  2007-07-20 오후 2:05:53 
             | 
            
                ㅋ, ^^ 도움주신분들 정말 감사합니다~ ^ㅡ^;;
 어찌어찌 해결을 하긴 했는데,, 궁금한게 생겨서,, 새글로 또 질문
 할 생각인데.. 혹시 도와주실꺼죠? ㅋ ^ㅡ^  /
 
 언제나 즐겁고 행복한 하루하루 만드시길 바라며..^^    
             | 
            
                 
             | 
        
  
        
             |