create proc addcolumn@tablenamevarchar(30),--표 명@colname varchar(30),--추가 할 열 명@coltype varchar(100),추가 할 열 유형@colid int--몇 번 째 열 asdeclare@colidmax intdeclare@sql varcharid(@tablename)and name=@colname)beginraisorror 20002'이 표 는 이미 이 열 이 있 습 니 다!'return-1end---------------------------------------------------------------------------------max = max(colid) from syscolumns where id=object_id(@tablename)if @colid > @colid_max or @colid < 1set @colid = @colid + 1--------------------------------------------------set @sql = 'alter table '+@tablename+' add '+@colname+' '+@coltypeexec(@sql)select @colid_max = colidfrom syscolumns where id = object_id(@tablename)and name=@colnameif@rowcount<>1beginraisorror 20003'에 새 열 을 추가 하 는 데 성공 하지 못 했 습 니 다.열 형식 이 올 바른 지 확인 하 십시오.configure'allow updates',1 RECONFIGURE WITH OVERRIDE--새 열 번 호 를-1set@sql='update syscolumnsset colid=-1where id=objectid('''+@tablename+''')and colid = '+cast(@colid_max as varchar(10)exec(@sql)--다른 열의 열 번 호 를 1set@sql='update syscolumnsset colid=colid+1where id=objectid('+@tablene+')and colid>='+cast(@colid as varchar(10))exec(@sql)--새 열 번 호 를 set@sql='update syscolumnsset colid='+cast(@colid as varchar(10))+'where id=objectid('+@tablename+')and name=''+@colname+''exec(@sql)configure 'allow updates',0 RECONFIGURE WITH OVERRIDEgo 호출 방법:exec addcolumn'표 이름','새 열 이름','새 열 형식'등 몇 번 째 위치 에 추가 합 니 다.예 를 들 어 exec addcolumn'test','id2','char(10)',2 는 id2 라 는 열 을 표 test 의 두 번 째 위치 에 추가 하고 유형 은 char(10)입 니 다.