테이블에 새 열을 추가 한 다음 테이블을 업데이트하고 이전 열의 날짜 형식을 변경하여 새 열을 설정하려고합니다.테이블을 변경하는 절차 및 잘못된 열이 계속 업데이트되지 않습니다.
나는 다음과 같이 내 절차는 규정이 있습니다
begin
alter table [dbo].[mytable]
add New_Field1 varchar(24)
end
......
update [dbo].[SMR06_TARGET]
set New_Field1 = convert(varchar(24),Old_Field1,103)
.....
내가 새로운 각 열의 맨 아래에있는 테이블 및 업데이트 문의 상단에 여러 테이블 변경 문이있다. 나는 이것이 DDL을 최상위에, DML을 최하위에 두는 SQL을 가진 규칙이라고 생각한다.
Ok 그래서 프로 시저를 만들 때마다이 메서드를 실행하여 잘못된 열 이름 New_Field1로 실패합니다. 나는이 문제를 일으키는 원인이 될 수는 없습니다. 나는 BEGIN ....의 다른 변종을 시도했다. 끝은 apprent의 기분을 상하게하는 성명서를 주석 처리했다. 그리고 나서 그것은 실행되고, 다음 문장으로 다시 실패한다.
저는 계산서가 종료되는 방식과 관련이 있다고 생각합니다. 나는 혼합 DDL/DML을 사용하기 전에이 유형의 프로 시저 문을 수행하지 않았기 때문에 확실하지 않습니다.
모든 힌트를 환영합니다.
감사
앤드류
배치로 분리해야합니다. alter table 명령문 (각각) 다음에 GO를 사용하십시오. – scsimon
저장 프로 시저에서 실제로이 작업을 수행하려고합니까? 그렇다면 왜? 한 번 이상 실행할 수 없습니다. –
다른 필드를 다른 형식으로 추가하면 안됩니다. Old_Field1을 datetime 데이터 형식으로 유지하고 원하는 모양이 다른 경우 select 문에서 변환을 사용하십시오. 좋아요 : new_Field1로 convert (varchar (24), Old_Field1,103)를 선택하십시오. – Chuck