Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zbuduj dynamiczną listę wartości instrukcji INSERT

Rozważ następujące polecenie:

SELECT 'SELECT ' +
    STUFF ((
        SELECT ', [' + name + ']'
        FROM syscolumns
        WHERE id = OBJECT_ID('Table') AND
            name <> 'me'
        FOR XML PATH('')), 1, 1, '') +
    ' FROM [Table]'

To zbuduje SELECT oświadczenie dla określonej tabeli. Aby zbudować INSERT oświadczenie może wyglądać tak:

SELECT @sql = 'INSERT INTO [Table] (' +
    STUFF ((
        SELECT ', [' + name + ']'
        FROM syscolumns
        WHERE id = OBJECT_ID('Table') AND
            name <> 'me'
        FOR XML PATH('')), 1, 1, '') +
    ') VALUES (' +
    STUFF ((
        SELECT ', @' + name
        FROM syscolumns
        WHERE id = OBJECT_ID('Table') AND
            name <> 'me'
        FOR XML PATH('')), 1, 1, '') + ')'

Istnieje oczywiście wiele sposobów na dostanie się do INSERT oświadczenie, uformuj je według własnych upodobań.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyświetlić plan wykonywania zapytań w Azure Data Studio (SQL Server)

  2. Jak wysłać e-mail z SQL Server?

  3. Dlaczego występuje dodatkowy (1 wiersz lub wiersze)

  4. Jak wygenerować wartość znacznika czasu dla pola binary(8)?

  5. Nie znaleziono bliskich odpowiedników w CONTAINSTABLE