Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Ayrıntılar
| Özellik | Değer |
|---|---|
| Ürün Adı | SQL Server |
| Olay Kimliği | 137 |
| Olay Kaynağı | MSSQLSERVER |
| Bileşen | SQLEngine |
| Sembolik Ad | P_SCALAR_VAR_NOTFOUND |
| İleti Metni | "%.*ls" skaler değişkenini bildirmesi gerekir. |
Explanation
Bu hata, bir değişken SQL scriptinde kullanıldığında önce değişken ilan edilmediğinde meydana gelir. Aşağıdaki örnek, hem SET hem de SELECT ifadeleri için 137 hatasını döndürür çünkü @mycol bildirilmemiştir.
SET @mycol = 'ContactName';
SELECT @mycol;
Bu hatanın daha karmaşık nedenlerinden biri, EXECUTE ifadesinin dışında ilan edilen bir değişkenin kullanılmasıdır. Örneğin, SELECT ifadesinde belirtilen @mycol değişken SELECT ifadesine yereldir; bu nedenle EXECUTE ifadesinin dışındadır.
USE AdventureWorks2022;
GO
DECLARE @mycol nvarchar(20);
SET @mycol = 'Name';
EXECUTE ('SELECT @mycol FROM Production.Product;');
Kullanıcı Eylemi
SQL scriptinde kullanılan değişkenlerin betikte başka bir yerde kullanılmadan önce ilan edildiğini doğrulayın.
Scripti, EXECUTE ifadesinde dışında ilan edilen değişkenlere referans vermeyecek şekilde yeniden yaz. Örneğin:
USE AdventureWorks2022;
GO
DECLARE @mycol nvarchar(20) ;
SET @mycol = 'Name';
EXECUTE ('SELECT ' + @mycol + ' FROM Production.Product;') ;
Ayrıca Bkz.
ÇALIŞTIR (Transact-SQL)
SET Deyimleri (Transact-SQL)
DECLARE @local_variable (Transact-SQL)