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

Cara menghasilkan kolom tabel temp dan tipe data secara otomatis melalui skrip

ini mungkin memberi Anda permulaan:

DECLARE @viewname VARCHAR(50);
SET @viewname ='tableorviewname';
SELECT  c.name + ' '+ t.name + 
case t.name  
WHEN 'varchar' THEN '('+CAST(c.max_length AS VARCHAR(3) )+'),'
ELSE ',' 
end
FROM sys.columns c
INNER JOIN sys.types AS t ON c.system_type_id = t.system_type_id
WHERE object_id = (SELECT object_id from sys.objects where name = @viewname)
ORDER BY c.column_id

EDIT:TABEL TEMP:

tabel temp sedikit berbeda, misalnya ini berfungsi di sql 2008 untuk tabel temp bernama #tv_source

DECLARE @viewortablename VARCHAR(50);
SET @viewortablename ='tempdb..#tv_source';
SELECT  c.name + ' '+ t.name + 
case t.name  
WHEN 'varchar' THEN '('+CAST(c.max_length AS VARCHAR(3) )+'),'
ELSE ',' 
end
FROM tempdb.sys.columns c
INNER JOIN sys.types AS t ON c.system_type_id = t.system_type_id
WHERE object_id =  object_id(@viewortablename)
ORDER BY c.column_id

CATATAN:ini memberikan daftar yang dipisahkan koma, tetapi TIDAK mencoba untuk menghapus koma terakhir itu, ini hanya memberikan daftar, yang mungkin ingin Anda masukkan ke dalam string dan manipulasi, dll. Kemudian gunakan sebagai sql dinamis atau semacamnya. Namun, itu akan memberi Anda awal tentang apa yang ingin Anda lakukan.

CATATAN untuk orang lain, sql 2000 tidak akan menampilkan panjang dengan benar misalnya pada varchar (45), itu hanya akan mencantumkan bagian varchar dan saya tidak mencoba untuk mengerjakan ulang itu untuk pertanyaan 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. Cara Mengubah Tipe Data Kolom di SQL Server (T-SQL)

  2. SQl 2008 kinerja lintas basis data pada mesin fisik yang sama dan instance server yang sama

  3. Fungsi IndexOf di T-SQL

  4. Menampilkan baris secara dinamis sebagai kolom

  5. Cara Memulihkan Database SQL Server di Mac menggunakan SQL Operations Studio