Aracılığıyla paylaş


MSSQLSERVER_137

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft 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)