sql >> Database >  >> RDS >> Sqlserver

verander tabel en update vervolgens in enkele instructie

Je kunt dit niet exact doen in een enkele instructie (of batch) en het lijkt erop dat de tool die u gebruikt, geen ondersteuning biedt voor GO als batchscheidingsteken.

U kunt EXEC . gebruiken om het echter in een onderliggende batch uit te voeren.

ALTER TABLE A
  ADD c1 INT, c2 VARCHAR(10);

EXEC('
UPDATE A
SET    c1 = 23,
       c2 = ''ZZXX'';
    ');

NB:Alle enkele aanhalingstekens in de query moeten worden verdubbeld zoals hierboven om ze te laten ontsnappen in een letterlijke tekenreeks.

Of u kunt vergelijkbare resultaten behalen in een enkele instructie met behulp van enkele standaardbeperkingen.

ALTER TABLE A
  ADD c1 INT NULL CONSTRAINT DF_A_c1 DEFAULT 23 WITH VALUES, 
     c2 VARCHAR(10) CONSTRAINT DF_A_c2 NULL DEFAULT 'ZZXX' WITH VALUES;

Maar dit is niet precies hetzelfde als de oorspronkelijke zoekopdracht, omdat de standaardbeperkingen achterblijven en mogelijk moeten worden verwijderd.



  1. MySQL CHAR() vs T-SQL CHAR():wat is het verschil?

  2. Django - Wijzig een ForeignKey-relatie in OneToOne

  3. Toegang tot MySQL vanuit Python 3:Toegang geweigerd voor gebruiker

  4. de MySQL-service op de lokale computer is gestart en vervolgens gestopt