sql >> Databáze >  >> RDS >> Sqlserver

Sestavte dynamický seznam hodnot příkazu INSERT

Zvažte následující příkaz:

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

Tím vytvoříte SELECT výpis pro konkrétní tabulku. Chcete-li vytvořit INSERT prohlášení může vypadat takto:

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, '') + ')'

Existuje samozřejmě mnoho způsobů, jak se dostat k INSERT prohlášení, vytvarujte jej podle svého.



  1. AKTUALIZACE Statistik

  2. Ignorování apostrofů při vyhledávání v mysql

  3. Python postgreSQL sqlalchemy dotazuje sloupec DATERANGE

  4. Použití LAST_INSERT_ID() v rámci víceřádkového vložení