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

Menggunakan SQL dinamis untuk menentukan nama kolom dengan menambahkan variabel ke kueri sql sederhana

Jika Anda mencoba menentukan nama kolom secara dinamis, Anda dapat melihat eksekusi sql dinamis. Namun, Anda harus memastikan untuk membaca tentang bahaya pendekatan ini terlebih dahulu:

http://www.sommarskog.se/dynamic_sql.html

Dari halaman itu, ada contoh yang menunjukkan secara dinamis menentukan nama tabel -- Anda bisa mengubahnya sehingga secara dinamis menentukan nama kolom sebagai gantinya:

CREATE PROCEDURE general_select @tblname nvarchar(128),
                                @key     varchar(10),
                                @debug   bit = 0 AS
DECLARE @sql nvarchar(4000)
SET @sql = 'SELECT col1, col2, col3
            FROM dbo.' + quotename(@tblname) + '
            WHERE keycol = @key'
IF @debug = 1 PRINT @sql
EXEC sp_executesql @sql, N'@key varchar(10)', @key = @key

Jadi misalnya jika Anda memiliki tabel 'MyTable' dengan kolom bernama 'x', 'y', dan 'z', mungkin terlihat seperti:

DECLARE @columnName nvarchar(128)
DECLARE @sql nvarchar(4000)
set @columnName = 'z'

SET @sql = 'SELECT x, y, ' + @columnName + ' from MyTable'
EXEC sp_executesql @sql, N'@columnName varchar(128)', @columnName = @columnName


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghapus Akun Email Database dari Profil (SSMS)

  2. Cara Mengembalikan Kepercayaan dalam Batasan Kunci Asing di SQL Server (Contoh T-SQL)

  3. Melewati daftar ke Prosedur Tersimpan TSQL 2008

  4. Bagaimana cara mengetahui kesalahan _exact_ dari SQL Server

  5. Apa Batasan Default di SQL Server - Tutorial SQL Server / TSQL Bagian 90