Apa sajakah fitur tersembunyi dari SQL Server ?
Sebagai contoh, sistem yang tidak terdokumentasi menyimpan prosedur, trik untuk melakukan hal-hal yang sangat berguna tetapi tidak cukup terdokumentasi?
Jawaban
Terima kasih untuk semua orang atas semua jawaban bagusnya!
Prosedur Tersimpan
- sp_msforeachtable: Menjalankan perintah dengan '?' diganti dengan setiap nama tabel (v6.5 dan lebih tinggi)
- sp_msforeachdb: Menjalankan perintah dengan '?' diganti dengan setiap nama basis data (v7 dan lebih tinggi)
- sp_who2: sama seperti sp_who, tetapi dengan lebih banyak info untuk blok pemecahan masalah (v7 dan lebih tinggi)
- sp_helptext: Jika Anda ingin kode prosedur tersimpan, lihat & UDF
- sp_tables: mengembalikan daftar semua tabel dan tampilan basis data dalam lingkup.
- sp_stored_procedures: mengembalikan daftar semua prosedur yang tersimpan
- xp_sscanf: Membaca data dari string ke lokasi argumen yang ditentukan oleh setiap argumen format.
- xp_fixeddrives:: Temukan drive tetap dengan ruang kosong terbesar
- sp_help: Jika Anda ingin mengetahui struktur tabel, indeks dan batasan dari sebuah tabel. Juga dilihat dan UDF. Shortcut adalah Alt + F1
Cuplikan
- Mengembalikan baris dalam urutan acak
- Semua objek database Pengguna berdasarkan Tanggal Modifikasi Terakhir
- Tanggal Pengembalian Saja
- Temukan catatan tanggal yang jatuh di suatu tempat dalam minggu ini.
- Temukan catatan tanggal mana yang terjadi minggu lalu.
- Mengembalikan tanggal untuk awal minggu ini.
- Mengembalikan tanggal untuk awal minggu lalu.
- Lihat teks prosedur yang telah digunakan untuk server
- Jatuhkan semua koneksi ke database
- Checksum tabel
- Checksum baris
- Letakkan semua prosedur dalam database
- Memetakan kembali Id login dengan benar setelah dipulihkan
- Sebut Prosedur Tersimpan dari pernyataan INSERT
- Temukan Prosedur Menurut Kata Kunci
- Letakkan semua prosedur dalam database
- Permintaan log transaksi untuk basis data secara terprogram.
Fungsi
- HashBytes ()
- EncryptByKey
- Perintah PIVOT
Lain-lain
- Ekstra Sambungan String
- TableDiff.exe
- Pemicu untuk Acara Logon (Baru di Paket Layanan 2)
- Tingkatkan kinerja dengan kolom yang tetap-dikomputasi (pcc).
- Pengaturan DEFAULT_SCHEMA di sys.database_principles
- Parameterisasi Paksa
- Format Penyimpanan Vardecimal
- Mencari tahu kueri paling populer dalam hitungan detik
- Basis Data Bersama yang Dapat diskalakan
- Tabel / Stored Prosedur Prosedur fitur dalam SQL Management Studio
- Lacak bendera
- Nomor setelah
GO
pengulangan batch - Keamanan menggunakan skema
- Enkripsi menggunakan fungsi enkripsi built-in, tampilan dan tabel dasar dengan pemicu
sql-server
tsql
Sklivvz
sumber
sumber
Jawaban:
Di Studio Manajemen, Anda bisa meletakkan nomor setelah penanda akhir batch GO menyebabkan batch diulang beberapa kali:
Akan mencetak 'X' 10 kali. Ini dapat menyelamatkan Anda dari copy / paste yang membosankan saat melakukan hal-hal yang berulang.
sumber
Banyak pengembang SQL Server tampaknya masih tidak tahu tentang klausa OUTPUT (SQL Server 2005 dan yang lebih baru) pada pernyataan DELETE, INSERT, dan UPDATE.
Mungkin sangat berguna untuk mengetahui baris mana yang telah DIMASUK, UPDATEd, atau DELETEd, dan klausa OUTPUT memungkinkan untuk melakukan ini dengan sangat mudah - ini memungkinkan akses ke tabel "virtual" yang dipanggil
inserted
dandeleted
(seperti dalam pemicu):Jika Anda memasukkan nilai ke dalam tabel yang memiliki bidang kunci primer INT IDENTITY, dengan klausa OUTPUT, Anda bisa mendapatkan ID baru yang disisipkan segera:
Dan jika Anda memperbarui, akan sangat berguna untuk mengetahui apa yang berubah - dalam hal ini,
inserted
mewakili nilai-nilai baru (setelah UPDATE), sembarideleted
merujuk ke nilai-nilai lama sebelum UPDATE:Jika banyak info akan dikembalikan, output OUTPUT juga dapat dialihkan ke tabel sementara atau variabel tabel (
OUTPUT INTO @myInfoTable
).Sangat bermanfaat - dan sangat sedikit yang diketahui!
Marc
sumber
sp_msforeachtable
: Menjalankan perintah dengan '?' diganti dengan setiap nama tabel. misalnyaAnda dapat mengeluarkan hingga 3 perintah untuk setiap tabel
Juga,
sp_MSforeachdb
sumber
Ekstra Sambungan Koneksi:
MultipleActiveResultSets = true;
Ini membuat ADO.Net 2.0 dan di atasnya membaca banyak, hanya maju, hanya-baca hasil set pada koneksi database tunggal, yang dapat meningkatkan kinerja jika Anda melakukan banyak membaca. Anda dapat menyalakannya bahkan jika Anda sedang melakukan campuran jenis permintaan.
Nama Aplikasi = MyProgramName
Sekarang ketika Anda ingin melihat daftar koneksi aktif dengan menanyakan tabel sysprocesses, nama program Anda akan muncul di kolom program_name alih-alih ".Net SqlClient Data Provider"
sumber
TableDiff.exe
Tautan
sumber
Teknik TSQL yang kurang dikenal untuk mengembalikan baris dalam urutan acak:
sumber
Di Studio Manajemen, Anda bisa dengan cepat mendapatkan daftar kolom yang dibatasi koma untuk tabel dengan:
Ini berguna ketika Anda tidak ingin menggunakan format keji yang dikembalikan dengan mengklik kanan pada tabel dan memilih Skrip Tabel Sebagai ..., lalu Sisipkan Ke ... Trik ini berfungsi dengan folder lain yang akan memberi Anda daftar nama yang dibatasi koma yang ada di dalam folder.
sumber
Konstruktor Baris
Anda dapat menyisipkan banyak baris data dengan satu pernyataan penyisipan.
sumber
Jika Anda ingin mengetahui struktur tabel, indeks dan batasan:
sumber
HashBytes () untuk mengembalikan hash MD2, MD4, MD5, SHA, atau SHA1 dari inputnya.
sumber
Mencari tahu pertanyaan paling populer
Tautkan dengan commnad
sumber
Tab hasil spasial dapat digunakan untuk membuat seni .
masukkan deskripsi tautan di sini http://michaeljswart.com/wp-content/uploads/2010/02/venus.png
sumber
KECUALI dan BERHUBUNGAN
Alih-alih menulis gabungan dan subquery yang rumit, kedua kata kunci ini adalah cara yang jauh lebih elegan dan mudah dibaca untuk mengekspresikan maksud kueri Anda saat membandingkan dua hasil kueri. Baru pada SQL Server 2005, mereka sangat melengkapi UNION yang telah ada dalam bahasa TSQL selama bertahun-tahun.
Konsep EXCEPT, INTERSECT, dan UNION adalah fundamental dalam teori himpunan yang berfungsi sebagai dasar dan dasar pemodelan relasional yang digunakan oleh semua RDBMS modern. Sekarang, hasil jenis diagram Venn dapat lebih intuitif dan cukup mudah dihasilkan menggunakan TSQL.
sumber
Saya tahu ini tidak sepenuhnya disembunyikan, tetapi tidak terlalu banyak orang yang tahu tentang perintah PIVOT . Saya dapat mengubah prosedur tersimpan yang menggunakan kursor dan membutuhkan waktu 2 menit untuk menjadi potongan kode 6 detik cepat yang sepersepuluh dari jumlah baris!
sumber
berguna saat mengembalikan database untuk tujuan Pengujian atau apa pun. Memetakan kembali ID login dengan benar:
sumber
Jatuhkan semua koneksi ke database:
sumber
ALTER DATABASE MyDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE
akan mencegah terjadinya koneksi baru juga.Checksum tabel
Checksum baris
sumber
Saya tidak yakin apakah ini fitur tersembunyi atau tidak, tetapi saya menemukan ini, dan menemukan ini berguna pada banyak kesempatan. Anda bisa menggabungkan satu set bidang dalam satu pernyataan pilih, daripada menggunakan kursor dan mengulang melalui pernyataan pilih.
Contoh:
Hasil:
sumber
Jika Anda menginginkan kode prosedur tersimpan, Anda dapat:
(tidak yakin apakah itu fitur tersembunyi, tapi saya menggunakannya sepanjang waktu)
sumber
Trik prosedur tersimpan adalah Anda dapat memanggil mereka dari pernyataan INSERT. Saya menemukan ini sangat berguna ketika saya sedang bekerja pada database SQL Server.
sumber
Dalam SQL Server 2005/2008 untuk menampilkan nomor baris dalam hasil kueri SELECT:
ORDER BY adalah klausa wajib. Klausa OVER () memberi tahu Mesin SQL untuk mengurutkan data pada kolom yang ditentukan (dalam hal ini OrderId) dan menetapkan angka sesuai hasil pengurutan.
sumber
Berguna untuk parsing argumen prosedur tersimpan: xp_sscanf
sumber
Tanggal Pengembalian Saja
atau
sumber
dm_db_index_usage_stats
Ini memungkinkan Anda untuk mengetahui apakah data dalam sebuah tabel telah diperbarui baru-baru ini walaupun Anda tidak memiliki kolom DateUpdated pada tabel.
Kode dari: http://blog.sqlauthority.com/2009/05/09/sql-server-find-last-date-time-updated-for-any-table/
Informasi yang dirujuk dari: SQL Server - Apa tanggal / waktu dari baris tabel yang dimasukkan terakhir?
Tersedia dalam SQL 2005 dan yang lebih baru
sumber
Berikut adalah beberapa fitur yang saya temukan berguna tetapi banyak orang tampaknya tidak tahu:
Tautan
Tautan
sumber
Temukan catatan tanggal yang jatuh di suatu tempat dalam minggu ini.
Temukan catatan tanggal mana yang terjadi minggu lalu.
Mengembalikan tanggal untuk awal minggu ini.
Mengembalikan tanggal untuk awal minggu lalu.
sumber
Bukan fitur tersembunyi tetapi mengatur pemetaan kunci di Management Studio di bawah Tools \ Options \ Keyboard: Alt + F1 secara default menjadi sp_help "teks yang dipilih" tetapi saya tidak dapat hidup tanpa menambahkan Ctrl + F1 untuk sp_helptext "teks yang dipilih"
sumber
Kolom persisten-dihitung
Tautan
sumber
Ada saat-saat ketika tidak ada kolom yang cocok untuk disortir, atau Anda hanya ingin urutan pengurutan default pada tabel dan Anda ingin menghitung setiap baris. Untuk melakukan itu, Anda dapat memasukkan "(pilih 1)" dalam klausa "urutan oleh" dan Anda akan mendapatkan yang Anda inginkan. Rapi, eh?
sumber
Enkripsi sederhana dengan EncryptByKey
sumber