보통 t-sql 문장을 이렇게 작성했는데요.INSERT 수강 VALUES (2006,3007,57,GETDATE())<-문제없이 잘됨이 문장을 별도의 다음과같은 쿼리 문자열로 만들어서 하면 에러가 나는데요.set @sysdate = GETDATE()str = 'insert 수강 VALUES (2006,3007,57,'+@sysdate +')'<-이거 에러나요.이런식으로 하면 에러가 나던데요. 어떻게 날짜를 설정해줘야하나요.
어떤 프로그램인지는 모르겠으나. str = 'insert 수강 VALUES (2006,3007,57,'+@sysdate +')' => str = "insert 수강 VALUES (2006,3007,57,'"+@sysdate +"')" 이렇게 해보세요
아 죄송합니다. 제정신이 아니었네요.
프로그램은 ms-sql2005 프로시저에서 작정했습니다.
전체적으로 작성된문장은 이렇겠습니다.
ALTER PROCEDURE dbo.testproc
as
declare @query varchar(1000)
declare @sdate datetime
set @sdate = getdate()
set @query = 'insert into testdb(name,value,date) values('+'''name1'''+',100,'+@sdate+')'
print @query
exec(@query)
return 0
-결과
문자열을 datetime으로 변환하지 못했습니다.
영향 받는 행이 없습니다.
(0개 행이 반환됨)
@RETURN_VALUE =
[dbo].[testproc]을(를) 실행했습니다.
declare @query varchar(1000) declare @sdate datetime declare @name1 varchar(100) set @name1 ='aaa' set @sdate = getdate()
set @query = 'insert into testdb(name, value, date) values (''' + @name1 + ''', 100, ''' + cast(@sdate as varchar) + ''')' print @query 될수 있으면 동적 쿼리문은 자제하시길...