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

Pembuatan tabel dinamis di tsql

Apakah Anda dapat menggunakan sesuatu seperti ini?

DECLARE @Tab VARCHAR(MAX)
SET @Tab = 'CREATE TABLE #Whatever ('

SELECT @Tab = @Tab + QUOTENAME(ColumnName) + ' INT NULL
,'
FROM @This
SELECT @Tab = SUBSTRING(@Tab,1,LEN(@Tab)-1) + ')'
PRINT @Tab
-- EXEC (@Tab)

Dua poin:Anda mungkin menemukan bahwa Anda perlu membuat tabel temp tanpa menggunakan sql dinamis, lalu menyesuaikan pernyataan pilih untuk mengubah tabel; ini agar tabel ada dalam konteks saat ini - jika pernyataan buat dalam dinamis, Anda mungkin mendapatkan kesalahan.

Saya tidak suka menggunakan sql dinamis seperti ini - jika nanti Anda dapat menggunakan pivot untuk mengembalikan kolom, itu mungkin opsi yang lebih baik (saya tidak yakin apakah mungkin dalam kasus ini).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah ada kerugian menggunakan NewSequentialID?

  2. SQL Delete membersihkan tabel alih-alih membuat kesalahan

  3. Tolong bantu meningkatkan statistik SQL Server!

  4. Kinerja SQL pada LEFT OUTER JOIN vs NOT EXISTS

  5. Setara dengan MySQL PADA DUPLICATE KEY UPDATE di Sql Server