[Ms-Sql 200] Tabel met data NOT NULL wijzigen

Pagina: 1
Acties:

  • Wezzie
  • Registratie: Maart 2001
  • Laatst online: 21-08 07:00
Is het mogelijk om 'not null' te activeren op een bestaande tabel? Het probleem is dat er data in zit die hier niet aan voldoet. De opzet is dus om een alter table uit te voeren met een 'NOCHECK'.

Hetzelfde dus wat je met een later toegevoegde constraint kunt doen. Ik mis alleen de optie voor een alter table. Ik weet weet dat ik het ook kan doen met een constraint maar ik hoop er op dat ik de tabel aan passen.

  • Avalanchez
  • Registratie: Juni 2002
  • Laatst online: 25-06-2012

Avalanchez

Phr34k

mss met een default '0' of een andere waarde die je goed uitkomt?

Computers are stupid, they can only give you answers. -Picasso


  • Wezzie
  • Registratie: Maart 2001
  • Laatst online: 21-08 07:00
Nee geen default waarde. Gewoon dat het veld functioneerd als een not null veld maar dan zonder check

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Sja, een NOT NULL veld kan gewoon geen NULL in. Dus óf die records moeten weg, óf een default waarde, óf geen NOT NULL.

日本!🎌


  • Wezzie
  • Registratie: Maart 2001
  • Laatst online: 21-08 07:00
precies, dat snap ik maar zelfs een update van alle not null velden is niet mogelijk. Je select ze bijvoorbeeld met:

select * from relaties
where adres1 IS null

maar een update met het volgende functioneerd ook niet:

update relaties
set adres1 = 'onbekend'
where ADRES1 IS null

Je krijgt dan de volgende melding:
Server: Msg 512, Level 16, State 1, Procedure reminder, Line 8
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.

Ik wil gewoon van de null waarden af en de tabel herstellen zonder dat er data verloren gaat.

[ Voor 3% gewijzigd door Wezzie op 28-06-2003 14:39 ]


  • Wezzie
  • Registratie: Maart 2001
  • Laatst online: 21-08 07:00
ben er al uit... gewoon met een cursor door de rommel heen lopen....

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DECLARE @WAARDE AS VARCHAR(10)
DECLARE @NUMMER AS INT
DECLARE TABLECURSOR CURSOR FOR
       SELECT NUMMER FROM dbo.T_Relaties
       where Postcode IS NULL
OPEN TABLECURSOR
FETCH NEXT FROM TABLECURSOR INTO @NUMMER
WHILE @@FETCH_STATUS = 0
BEGIN
    PRINT @NUMMER
    UPDATE dbo.T_Relaties
    SET Postcode = '0000 AA'
    WHERE NUMMER = @NUMMER
    FETCH NEXT FROM TABLECURSOR INTO @NUMMER
END
CLOSE TABLECURSOR
DEALLOCATE TABLECURSOR
Pagina: 1