2017-12-13 12 views
1

실행중인 응용 프로그램에 대해 데이터베이스를 업데이트하기 위해 SQL 델타 스크립트가 있습니다. 이 델타 스크립트에는 나중에 삭제 될 열에 대한 SELECT 문이 있습니다.삭제할 열을 사용할 때 SQL 델타 스크립트에서 오류를 표시합니다.

문은 if 절로 둘러싸여 있으며 열이 없으면 실행되지 않습니다. 첫 번째 실행에는 문제가 없지만 델타 스크립트를 실행할 때 오류가 "잘못된 열 이름 '열 이름'"으로 표시됩니다.

이 오류를 방지하려면 어떻게해야합니까?

답변

0

컴파일 타임에 SQL이 스크립트에 대한 오브젝트 존재 확인을 수행하기 때문에이 오류가 발생합니다. 쿼리를 쿼리 문자열로 변환하면이 문제를 피할 수 있습니다. 이 같은

IF EXISTS(SELECT 1 FROM sys.columns WHERE object_id = object_id('YourTable') and name = 'ColumnName') 
begin 

exec('select ColumnName from YourTable where <Conditions>') 

end