Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Xây dựng danh sách động các giá trị câu lệnh INSERT

Hãy xem xét lệnh sau:

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

Điều đó sẽ tạo ra một SELECT tuyên bố cho một bảng cụ thể. Để tạo một INSERT tuyên bố nó có thể trông như thế này:

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

Tất nhiên, có nhiều cách để truy cập INSERT tuyên bố, tạo khuôn mẫu theo ý thích của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiểm tra xem bảng có tồn tại trong SQL Server không

  2. Tìm tất cả các khoảng trống số nguyên trong SQL

  3. Sự khác biệt giữa là gì; và ĐI trong T-SQL?

  4. SQL Agent Job - Run As danh sách thả xuống trống

  5. Xóa bản ghi khỏi tập dữ liệu và máy chủ sql