가 여기에 내가 datetime
날짜 시간 및 sp_executesql을
OPEN @form_dates
FETCH NEXT FROM @form_dates INTO @cid, @regdate, @compdate/* PRINT @regdate PRINT @compdate This is correctly having values in datetime. eg: Mar 28 2012 6:03PM PRINT @courseno */
WHILE @@FETCH_STATUS = 0 BEGIN SET @SQL = N'update tblname set cs' + CAST (@cid AS VARCHAR(10)) + '_begin = @rstring , cs' + CAST (@cid AS VARCHAR(10))+ '_end = @cstring where UserID = '+ CAST (@tempID AS VARCHAR(10))
DECLARE @ParmDefinition nvarchar(500) SET @ParmDefinition = N'@rstring datetime, @cstring datetime'
EXECUTE sp_ExecuteSQL @SQL, @ParmDefinition, @rstring = @regdate, @cstring = @compdate
I have the values of
@regdate
and@compdate
fetched from a cursor and are of the format Jan 3 2012 2:30PM Mar 28 2012 6:03PM but these values are not reflecting in procedure output where I get the output:update tblname set cs32_begin = @rstring , cs32_end = @cstring where UserID = 419
감사에 문제가있어 내 T-SQL 코드입니다.^
환영합니다 StackOverflow : 코드, XML 또는 데이터 샘플을 게시하는 경우 ** 텍스트 편집기에서 해당 행을 강조 표시하고 편집기 툴바의 "코드 샘플"버튼 ('{}) '을 클릭하십시오. 형식 및 구문을 강조 표시하십시오! –
'@SQL, @regdate and @ compdate'의 정의를 보여 주시고 값이 어디에서 오는지 커서와 쿼리를 설명하십시오. 이 문제를 완전히 해결하도록 우리에게 요구하고 있습니다. –
그리고 단순화하면 어떻게됩니까? (예 : 내가 준 사례, 단지'SELECT' 만)? 또한 "이 값은 프로 시저 출력에 반영되지 않습니다"라는 의미를 이해하지 못합니다 - 코드 샘플의 마지막 줄에 출력을 정확히 얻는 방법은 무엇입니까? 'PRINT @ SQL'을 사용하고 있습니까? 그렇다면'@ SQL'은'sp_executeSQL'을 사용한 후에 문자열 안의 값을 대체하지 않는다는 것을 명심하십시오. –