SQL Server 2005/2008을 사용하고 있습니다. 아직 테이블이 존재하지 않으면 테이블에 열을 추가해야합니다. 이것은 주어진 데이터베이스의 모든 테이블에 적용됩니다. 나는 가까이에 있기를 바랐지만이 솔루션에 문제가 있습니다.열이 모든 테이블에 없으면 추가 하시겠습니까?
어떻게이 작업을 수행 할 수 있습니까?
EXEC sp_MSforeachtable '
declare @tblname varchar(255);
SET @tblname = PARSENAME("?",1);
if not exists (select column_name from INFORMATION_SCHEMA.columns
where table_name = @tblname and column_name = ''CreatedOn'')
begin
ALTER TABLE @tblname ADD CreatedOn datetime NOT NULL DEFAULT getdate();
end
'
하지만 오류를 얻을 :
여기에 내가 가진 무엇
오류 102 : 근처의 구문이 잘못되었습니다 '@tblname을'. 'CreatedOn'근처의 구문이 잘못되었습니다. '@tblname'근처의 구문이 잘못되었습니다. 'CreatedOn'근처의 구문이 잘못되었습니다. ... 등등. 각 테이블에 대해.
가능한 중복 http://stackoverflow.com/questions/1779743/adding-a-column- to-all-user-tables-in-t-sql – JAiro
@JAiro : 분명히 관련 링크이지만, "존재하지 않는다면"규칙은 중요하며 좀 더 복잡하게 만듭니다. –
ok 이렇게하면 정보를 완료 할 수 있습니다. http://stackoverflow.com/questions/133031/how-to-check-if-column-exists-in-sql-server-table – JAiro