기존 테이블에 추가 컬럼을 추가 한 후 나중에 기존 레코드에 대해 적절한 컬럼 값을 삽입해야합니다. 단일 저장 프로 시저 내에서이 작업을 수행해야합니다.작성 직후의 컬럼 값 변경 (단일 저장 프로 시저 내에서)
지금까지 다음 (SQL 관리 스튜디오는 기존 레코드에 값을 추가하기 위해 새 열 찾을 수 없다고보고)이 : 나는 "GO"키워드를 추가하는 시도
BEGIN
ALTER TABLE tbl1
ADD col_add int
UPDATE tbl1
SET [col_add]='value'
WHERE col_pk = 1
END
을 ALTER 문과 UPDATE 문 사이에 있지만 구문 오류가보고됩니다.
미리 감사드립니다.
이 절반 방법이 있습니다,하지만 당신은 당신이 커밋하기 전에 TRAN'을 BEGIN '으로 거래를 시작할 필요 그 (것)들 – GarethD
당신이 순차적으로 투입하는 경우에 저것은 진짜로 필요합니까? 어쩌면 '변경', '업데이트'를 한 다음 커밋 할 경우 트랜잭션을 추가해야하지만 '변경' '커밋' '업데이트' '커밋'을하면 트랜잭션이 필요하다고 생각하지 않습니다. 어쩌면 틀린지만 ... –
예, 테스트가 필요합니다. 이 절차는'BEGIN TRAN'없이 컴파일되지만 실행시 오류가 발생합니다. SQL Fiddle에 대한 권한으로 인해 실행되지 않는 테스트 스크립트 [여기] (http://sqlfiddle.com/#!3/0ed4a/1)가 있지만 DB에서 사용해 볼 수 있습니다. 'BEGIN TRAN' 행의 주석 처리를 제거하면 프로 시저가 오류없이 실행됩니다 (한 번 실행되는 경우). – GarethD