sql >> Database teknologi >  >> RDS >> Sqlserver

Byg en dynamisk liste over INSERT-sætningsværdier

Overvej følgende kommando:

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

Det vil bygge en SELECT erklæring for en bestemt tabel. For at bygge en INSERT udsagn kan det se sådan ud:

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

Der er selvfølgelig mange måder at komme til INSERT udsagn, form den efter din smag.



  1. Træk sekunder fra en dato-tidsværdi i MariaDB

  2. PHP (MySQL) fejl:Advarsel:mysql_num_rows() forventer, at parameter 1 er ressource

  3. Hvilke koder har korrespondance i db

  4. Lagret procedure hænger tilsyneladende uden forklaring