Synchronize PERSISTED computed column with function
Powlin
Posts: 42 Bronze 3
I'm trying to update a function with SCHEMABINDING that is used by a persisted computed column on a table, I always get this error while editing :
** Cannot ALTER 'dbo.getFormatDateHourOnly' because it is being referenced by object 'data_QueueingANO'.
In my dev box I remove manually any computed column, next I modify my function and after I re-add computed column.
But when I try to synchronize using SQL Compare I still get this error. This that take lot of time to remove column and re-add it, so I don't want to do it for every synchronization.
I would like to know what is the best way using SQL Compare to synchronize this type of change ?
--- Here is the declaration of the function and the table with computed column
FUNCTION getFormatDateHourOnly(@NbMinute float)
RETURNS varchar(12)
WITH SCHEMABINDING
TABLE data_QueueingANO
(
Call_ID int NOT NULL,
TimeElapsed float NULL,
TimeElapsedFormatted AS ([dbo].[getFormatDateHourOnly]([TimeElapsed])) PERSISTED
)
Thanks
** Cannot ALTER 'dbo.getFormatDateHourOnly' because it is being referenced by object 'data_QueueingANO'.
In my dev box I remove manually any computed column, next I modify my function and after I re-add computed column.
But when I try to synchronize using SQL Compare I still get this error. This that take lot of time to remove column and re-add it, so I don't want to do it for every synchronization.
I would like to know what is the best way using SQL Compare to synchronize this type of change ?
--- Here is the declaration of the function and the table with computed column
FUNCTION getFormatDateHourOnly(@NbMinute float)
RETURNS varchar(12)
WITH SCHEMABINDING
TABLE data_QueueingANO
(
Call_ID int NOT NULL,
TimeElapsed float NULL,
TimeElapsedFormatted AS ([dbo].[getFormatDateHourOnly]([TimeElapsed])) PERSISTED
)
Thanks
Comments
If this is not working, I suspect that the setting to include the dependent objects is not on.
The point of schemabinding is that you cannot drop a column if it's still referenced by a schemabound object (like your stored procedure). The schemabound objects would have to be dropped first.