|
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
|
ㅋ, ^^ 도움주신분들 정말 감사합니다~ ^ㅡ^;;
어찌어찌 해결을 하긴 했는데,, 궁금한게 생겨서,, 새글로 또 질문
할 생각인데.. 혹시 도와주실꺼죠? ㅋ ^ㅡ^ /
언제나 즐겁고 행복한 하루하루 만드시길 바라며..^^
|
|
|