블로그 이미지
자료에 문제가 있을 경우, 확인하는대로 삭제처리 하겠습니다. 즐거운 하루 되시길...
04-29 21:24
Total
Today
Yesterday

카테고리

분류 전체보기 (199)
이야기방 (20)
공부방 (173)
개발노트&관련잡다구니 (6)

-- 테이블, 컬럼(특정) Default 체크
DECLARE @tablename varchar(100)
DECLARE @columnname varchar(100)

set @tablename  = 테이블
set @columnname = 컬럼

select d.*  
  from sys.default_constraints d
 inner join sys.tables t on t.object_id = d.parent_object_id  
 inner join sys.columns c on c.object_id = t.object_id and c.column_id = d.parent_column_id 
 where t.name = @tablename
   and c.name = @columnname
;

-- 테이블, 컬럼(특정) Default 삭제
DECLARE @tablename varchar(100)
DECLARE @columnname varchar(100)
DECLARE @conname varchar(100)

set @tablename  = 테이블
set @columnname = 컬럼
SET @conname = (select d.name  
      from sys.default_constraints d
 inner join sys.tables t on t.object_id = d.parent_object_id  
 inner join sys.columns c on c.object_id = t.object_id and c.column_id = d.parent_column_id 
 where t.name = @tablename
   and c.name = @columnname
)
  
exec ('ALTER TABLE [' + @tablename + '] DROP CONSTRAINT [' + @conname + ']' )

-- 테이블, 컬럼(특정) Default 변경
DECLARE @tablename  varchar(100)
DECLARE @columnname varchar(100)
DECLARE @defaultold varchar(100)
DECLARE @conname    varchar(100)

set @tablename  = 테이블
set @columnname = 컬럼
set @defaultold = 변경 대상 Default 값
if EXISTS (select 'X' from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = @tablename and COLUMN_NAME = @columnname and COLUMN_DEFAULT like '(' + @defaultold + '%)') begin
SET @conname = (
select d.name  
      from sys.default_constraints d
 inner join sys.tables t on t.object_id = d.parent_object_id  
 inner join sys.columns c on c.object_id = t.object_id and c.column_id = d.parent_column_id 
 where t.name = @tablename
   and c.name = @columnname
)   

exec ('ALTER TABLE [' + @tablename + '] DROP CONSTRAINT [' + @conname + ']')
end

if isnull((select COLUMN_DEFAULT from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = @tablename and COLUMN_NAME = @columnname), '') = '' begin
exec ('ALTER TABLE [' + @tablename + '] ADD  DEFAULT CONVERT([char](8),getdate(),(112))+replace(CONVERT([char](8),getdate(),(108)),'':'','''') FOR ' + @columnname)
end

 

- 빨간색은 알아서 잘.. 변경해서.. 

Posted by 래채
, |