Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

ubah tabel lalu perbarui dalam satu pernyataan

Anda tidak dapat melakukan ini dengan tepat dalam satu pernyataan (atau kumpulan) dan tampaknya alat yang Anda gunakan tidak mendukung GO sebagai pembatas batch.

Anda dapat menggunakan EXEC untuk menjalankannya dalam batch anak sekalipun.

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

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

NB:Semua tanda kutip tunggal dalam kueri perlu digandakan seperti di atas untuk menghindarinya di dalam string literal.

Atau sebagai alternatif, Anda dapat mencapai hasil yang serupa dalam satu pernyataan dengan bantuan beberapa batasan default.

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;

Tapi ini tidak persis sama dengan kueri asli karena batasan default akan ditinggalkan dan mungkin perlu dihilangkan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TDS Server - Gunakan Pernyataan Transact-SQL (T-SQL) Untuk Bekerja Dengan Data Salesforce di SQL Server

  2. Pemetaan Titik Geospasial di Lancar NHibernate

  3. Ganti Beberapa Karakter dalam sebuah String di SQL Server (T-SQL)

  4. Buat Kolom Terhitung yang Menggunakan Data dari Tabel Lain di SQL Server

  5. Masukkan kueri dalam Fungsi SQL