Alter "Default" in SQL Server -
i have custom default value in sql server 2008 table.
similar
create default [dbo].[default_timestamp] getdate() now want change value in default.
create default [dbo].[default_timestamp] getutcdate() before can edit existing one, need drop first 1 , recreate it.
drop default [dbo].[default_timestamp] it gives following error.
msg 3716, level 16, state 3, line 4
default 'dbo.default_timestamp' cannot dropped because bound 1 or more column.
since default use few tables cannot drop , recreate new one.
i know need unbind tables default before can recreate it.
can provide script list table , columns bound default?
it's multi-step process:
1) find object_id default :
declare @defaultobjectid int select @defaultobjectid = object_id('default_timestamp') 2) find columns reference default:
select columnname = c.name, tablename = t.name, unbindcmd = 'exec sp_unbindefault ''' + t.name + '.' + c.name + '''' sys.columns c inner join sys.tables t on c.object_id = t.object_id default_object_id = @defaultobjectid this produce list of unbindcmd commands remove default columns.
3) now, copy column sql server mgmt studio window, , execute in new query window "unbind" default columns
4) define new default
however: these days, not define new default per se - can't set default constraint on columns in question directly?
alter table dbo.yourtable add constraint df_yourtable_timestamp default getutcdate() yourcolumnname seems easier work going future! when explicitly name constraint, can find , drop constraint again, if need be.
Comments
Post a Comment