Saya mencoba mengatur variabel dari kueri SQL:
declare @ModelID uniqueidentifer
Select @ModelID = select modelid from models
where areaid = 'South Coast'
Jelas saya tidak melakukan ini dengan benar karena tidak berfungsi. Adakah yang bisa menyarankan solusi?
Terima kasih!
sql
sql-server
tsql
Tuan Cricket
sumber
sumber
Jawaban:
Menggunakan SELECT:
Menggunakan SET:
Lihat pertanyaan ini untuk perbedaan antara menggunakan SELECT dan SET dalam TSQL .
Peringatan
Jika pernyataan pilih ini mengembalikan beberapa nilai (buruk untuk memulai):
SELECT
, variabel diberi nilai terakhir yang dikembalikan (seperti yang dikatakan womp), tanpa kesalahan atau peringatan (ini dapat menyebabkan bug logika)SET
, kesalahan akan terjadisumber
Jika pernyataan pilih Anda mengembalikan beberapa nilai, variabel Anda akan diberi nilai terakhir yang dikembalikan.
Untuk referensi tentang menggunakan SELECT dengan variabel: http://msdn.microsoft.com/en-us/library/aa259186%28SQL.80%29.aspx
sumber
sumber
Saya lebih suka mengaturnya dari pernyataan pernyataan
sumber
Gunakan
TOP 1
jika kueri mengembalikan beberapa baris.sumber
Anda dapat menggunakan ini, tetapi ingat bahwa kueri Anda memberikan 1 hasil, beberapa hasil akan membuang pengecualian.
Cara lain:
sumber
Dalam hal ini jika Anda memiliki dua hasil atau lebih yang dikembalikan maka hasil Anda adalah catatan terakhir. Jadi waspadai ini jika Anda mungkin memiliki dua catatan lagi yang dikembalikan karena Anda mungkin tidak melihat hasil yang diharapkan.
sumber
Ada tiga pendekatan:
Kueri di bawah ini merinci keuntungan dan kerugian masing-masing:
sumber
Untuk ASSIGN variabel menggunakan SQL pilih praktik terbaik adalah seperti yang ditunjukkan di bawah ini
JIKA Anda harus menetapkan lebih dari satu variabel dalam satu baris, Anda dapat menggunakan SELECT INTO yang sama
sumber