Apa kueri yang akan menunjukkan kepada saya definisi lengkap, termasuk indeks dan kunci untuk tabel SQL Server? Saya ingin kueri murni - dan tahu bahwa SQL Studio dapat memberikan ini kepada saya, tetapi saya sering berada di komputer "liar" yang hanya memiliki aplikasi paling sederhana dan saya tidak memiliki hak untuk menginstal studio. Tapi SQLCMD selalu menjadi pilihan.
UPDATE: Saya telah mencoba sp_help, tetapi hanya menghasilkan satu record yang menunjukkan Name, Owner, Type dan Created_Datetime. Apakah ada hal lain yang saya lewatkan dengan sp_help?
Inilah yang saya sebut:
sp_help bandara
Perhatikan bahwa saya benar-benar menginginkan DDL yang mendefinisikan tabel.
sql-server
tsql
Daniel Williams
sumber
sumber
sp_help
adalah mengembalikan beberapa set hasil. Anda menjelaskan kolom yang dikembalikan oleh kumpulan hasil pertama.Jawaban:
Tidak ada cara mudah untuk mengembalikan DDL. Namun Anda bisa mendapatkan sebagian besar detail dari Tampilan Skema Informasi dan Tampilan Sistem .
sumber
sp_columns
seperti yang saya sebutkan dalam jawaban saya. Jika ingin info tentang FK jalankansp_fkeys
. Jika Anda ingin mengetahui indeks, jalankansp_statistics
.Sudahkah Anda mencoba sp_help?
sumber
Kunjungi http://www.stormrage.com/SQLStuff/sp_GetDDL_Latest.txt .
Anda akan menemukan kode
sp_getddl
prosedur untuk SQL Server. Tujuan dari prosedur ini adalah membuat skrip tabel, tabel temp atau objek apa pun.PEMAKAIAN:
atau
atau
atau
Saya mengujinya di SQL Server 2012, dan berfungsi dengan sangat baik.
Saya bukan pembuat prosedur. Setiap perbaikan yang Anda lakukan untuk itu kirimkan ke Lowell Izaguirre ([email protected]).
sumber
Cara termudah dan tercepat yang dapat saya pikirkan adalah menggunakan sp_help
sp_help 'TableName'
sumber
Gunakan aplikasi baris perintah Windows kecil ini yang mendapatkan
CREATE TABLE
skrip (dengan batasan) untuk tabel apa pun. Saya telah menulisnya di C #. Cukup kompilasi dan simpan di memory stick. Mungkin seseorang bisa memindahkannya ke Powershell.sumber
sumber
Ini akan mengembalikan kolom, tipe data, dan indeks yang ditentukan pada tabel:
Ini akan mengembalikan pemicu yang ditentukan di tabel:
sumber
Sejak SQL 2012 Anda dapat menjalankan pernyataan berikut:
Jika Anda memasukkan pernyataan pemilihan yang kompleks (bergabung, subpilih, dll), itu akan memberi Anda definisi dari kumpulan hasil. Ini sangat berguna, jika Anda perlu membuat tabel baru (atau tabel temp) dan Anda tidak ingin memeriksa setiap definisi bidang secara manual.
https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-describe-first-result-set-transact-sql
sumber
Cukup ketik nama tabel dan pilih dan tekan ATL + F1
Katakanlah nama tabel Anda
Customer
lalu buka jendela kueri baru , ketik dan pilih nama tabel dan tekan ALT + F1Ini akan menunjukkan definisi lengkap dari tabel.
sumber
Variasi jawaban @Anthony Faull untuk mereka yang menggunakan LINQPad:
Anda harus mereferensikan 2 rakitan:
Dan tambahkan referensi namespace seperti yang disebutkan dalam cuplikan Anthony.
sumber
Saya tahu ini pertanyaan lama, tapi persis seperti yang saya cari. Karena saya ingin menumpuk skrip beberapa tabel, saya menulis ulang kode C # dari Anthony Faull untuk PowerShell.
Yang ini menggunakan Keamanan Terintegrasi:
Dan di sini dengan nama pengguna dan kata sandi:
sumber
Coba prosedur tersimpan sp_help.
sp_help <>
sumber
Sebagai tambahan atas jawaban Barry. Sp_help juga dapat digunakan dengan sendirinya untuk mengulang semua objek dalam database tertentu. Anda juga memiliki sp_helptext untuk gudang senjata Anda, yang menskrip elemen program, seperti prosedur tersimpan.
sumber
Cara lain adalah dengan menjalankan prosedur sp_columns .
sumber
sumber
"Perhatikan bahwa saya benar-benar menginginkan DDL yang mendefinisikan tabel."
gunakan pg_dump:
Ini memberi Anda definisi tabel (
-s
hanya skema, tidak ada data) dari tabel tertentu (nama-t
tab) dalam database"dbname"
dalam SQL biasa. Selain itu, Anda akan mendapatkan info urutan, kunci utama, dan batasan. Output yang Anda dapat -mungkin setelah memeriksa dan mengedit sesuai dengan kebutuhan Anda- dimasukkan kembali ke database Postgres (sama atau lainnya):Ini untuk UNIX / Linux, tapi saya yakin, pg_dump juga ada untuk Windows.
sumber