Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

промяна на таблицата, след което актуализирайте в единичен оператор

Не можете да направите това точно в един оператор (или пакет) и изглежда, че инструментът, който използвате, не поддържа GO като разделител на партиди.

Можете да използвате EXEC все пак да го стартирате в дъщерен пакет.

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

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

NB:Всички единични кавички в заявката трябва да бъдат удвоени, както е посочено по-горе, за да ги избегнат в низов литерал.

Или алтернативно можете да постигнете подобни резултати в един оператор с помощта на някои ограничения по подразбиране.

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;

Но това не е точно същото като оригиналната заявка, тъй като ограниченията по подразбиране ще бъдат оставени и може да се наложи да бъдат премахнати.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Замяна на определен знак в имейл адреси с '*' в SQL заявка

  2. Групово вмъкване в SQL Server CE

  3. Намерете референтни обекти в SQL Server:sys.dm_sql_referencing_entities()

  4. Грешка 'datetime2' при използване на структура на обект в VS 2010 .net 4.0

  5. SQL заявка за намиране на редове само със специални знаци