Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing column constraint null/not null = rowguid replication error

I have a database running under Sql server 2005 with merge replication. I want to change some of the FK columns to be 'not null' as they should always have a value. SQL server won't let me do that though, this is what it says:

  • Unable to modify table. It is invalid to drop the default constraint on the rowguid column that is used by merge replication. The schema change failed during execution of an internal replication procedure. For corrective action, see the other error messages that accompany this error message. The transaction ended in the trigger. The batch has been aborted.

I am not trying to change the constraints on the rowguid column at all, only on another column that is acting as a FK. Other columns I want to set to be not null because the record doesn't make any sense without that information (i.e. on a customer, the customer name).

Questions: Is there a way to update columns to be 'not null' without turning off replication then turning it back on again? Is this even the best way to do this - should I be using a constraint instead?

like image 983
Dale Avatar asked Dec 16 '09 02:12

Dale


1 Answers

Apparently SSMS makes changes to tables by dropping them and recreating them. So just needed to make the changes using T-SQL statement.

ALTER TABLE dbo.MyTable ALTER COLUMN MyColumn nvarchar(50) NOT NULL 
like image 188
Dale Avatar answered Sep 22 '22 19:09

Dale