Hoi allemaal,
Ik ben bezig met het omzetten van een database, gewoon binnen SQL Server 2000. Nu gaat alles via SQL, omdat het op meerdere servers, intra en internet geupdate moet worden. Er bestaan ook meerdere verschillende versies van alles.
Nu kwam ik op het probleem dat ik een gecombineerde sleutel moest maken. Opzich geen probleem. Alleen op sommige servers mag de waarde van een van de twee kolommen NULL zijn. Dan kan ik er geen sleutel van maken. (het zal nooit null zijn.. maar het mag wel..)
Mijn eerste reactie.. dan doen we toch gewoon een modify.... maar dat ging niet.. want dat mag niet ben ik inmiddels achter..
Prima.. dan maak ik een temp kolom waarin ik al die waardes zet.. verwijder de oude kolom en remane de nieuwe (sp_rename).. Maar dat gaat ook niet goed.. aangezien die oude wel een dependent object in sysobjects heeft staan. en ik die kolom dus niet zomaar kan droppen.. En dat object in sysobjects kan ook een andere naam hebben.. dus die kan ik ook niet zomaar verwijderen..
Toen kwam ik op het idee om alleen de NOT NULL te zetten bij die kolom.. maar daar kwam ik niet uit..
Dus nu eindelijk mijn vraag: Is het mogelijk om alleen de NOT NULL te veranderen met SQL.. zonder dat er verder dingen gewijzigd worden?
Ik ben bezig met het omzetten van een database, gewoon binnen SQL Server 2000. Nu gaat alles via SQL, omdat het op meerdere servers, intra en internet geupdate moet worden. Er bestaan ook meerdere verschillende versies van alles.
Nu kwam ik op het probleem dat ik een gecombineerde sleutel moest maken. Opzich geen probleem. Alleen op sommige servers mag de waarde van een van de twee kolommen NULL zijn. Dan kan ik er geen sleutel van maken. (het zal nooit null zijn.. maar het mag wel..)
Mijn eerste reactie.. dan doen we toch gewoon een modify.... maar dat ging niet.. want dat mag niet ben ik inmiddels achter..
Prima.. dan maak ik een temp kolom waarin ik al die waardes zet.. verwijder de oude kolom en remane de nieuwe (sp_rename).. Maar dat gaat ook niet goed.. aangezien die oude wel een dependent object in sysobjects heeft staan. en ik die kolom dus niet zomaar kan droppen.. En dat object in sysobjects kan ook een andere naam hebben.. dus die kan ik ook niet zomaar verwijderen..
Toen kwam ik op het idee om alleen de NOT NULL te zetten bij die kolom.. maar daar kwam ik niet uit..
Dus nu eindelijk mijn vraag: Is het mogelijk om alleen de NOT NULL te veranderen met SQL.. zonder dat er verder dingen gewijzigd worden?
[ Voor 7% gewijzigd door Jaspertje op 14-10-2003 11:50 ]