Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Meluluskan Hasil Ungkapan sebagai Parameter dalam Prosedur Tersimpan Pelayan SQL?

Bagaimana untuk Meluluskan Hasil Ungkapan sebagai Parameter dalam Prosedur Tersimpan Pelayan SQL?

Patricia Arquette
Lepaskan: 2025-01-11 17:01:42
asal
545 orang telah melayarinya

How to Pass the Result of an Expression as a Parameter in a SQL Server Stored Procedure?

Meluluskan hasil ekspresi sebagai parameter dalam prosedur disimpan SQL Server

Seorang pembangun mengalami ralat semasa cuba melaksanakan prosedur tersimpan, bertujuan untuk meningkatkan pembangunan pangkalan data. Ralat berlaku apabila cuba menghantar hasil ungkapan (khususnya gabungan rentetan "Tidak dapat mencari id yang diberikan: " dengan nilai pembolehubah integer @pID) terus ke dalam senarai argumen.

Walau bagaimanapun, SQL Server tidak menyokong operasi sedemikian dalam senarai parameter itu sendiri. Sebaliknya, pembolehubah perantaraan mesti digunakan untuk memegang hasil ungkapan sebelum menghantarnya kepada hujah.

Sintaks EXEC tidak menyatakan secara eksplisit format "nilai" dalam bahagian parameter, menunjukkan bahawa hanya ungkapan mudah diterima. Ungkapan ini terhad kepada nilai literal dan beberapa fungsi sistem yang diawali dengan @@. Fungsi sistem lain, walaupun yang tidak memerlukan kurungan, tidak dibenarkan.

Jadi, untuk menyelesaikan ralat ini, pembangun perlu menggunakan sintaks berikut:

<code class="language-sql">DECLARE @pID INT;

SET @pID = 1;

/*如果使用2008及以上版本,之前的版本需要分成两个单独的语句*/
DECLARE @string VARCHAR(50) = 'Could not find given id: ' + CAST(@pID AS VARCHAR(11));

EXEC WriteLog
  'Component',
  'Source',
  @string;</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Meluluskan Hasil Ungkapan sebagai Parameter dalam Prosedur Tersimpan Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan