SQL Server’da A Select Statement That Assigns a Value to a Variable Must Not Be Combined With Data-Retrieval Operations Hatası

Herkese merhaba,

Bu yazıda sizlere SQL Server’da a Select statement that assigns a value to a variable must not be combined with data-retrieval operations hatasından bahsedeceğim.

İşlemi anlak için aşağıdaki tabloyu oluşturun ve sonrasında verileri insert edin.

--Tablo Oluşturulması

CREATE TABLE OrnekTablo(
ID int IDENTITY(1,1) PRIMARY KEY,
Ad NVARCHAR(100),
Soyad NVARCHAR(100),
Yas SMALLINT
)

--Tabloya Verilerin Insert Edilmesi

INSERT INTO dbo.OrnekTablo
(
    Ad,
    Soyad,
    Yas
)
VALUES
(   N'Yavuz', -- Ad - nvarchar(100)
    N'Selim', -- Soyad - nvarchar(100)
    30    -- Yas - smallint
    ),(
	 N'Selim', -- Ad - nvarchar(100)
    N'Gerçek', -- Soyad - nvarchar(100)
    40    -- Yas - smallint
	),
	(	
	 N'Ahmet', -- Ad - nvarchar(100)
    N'Güngör', -- Soyad - nvarchar(100)
    60    -- Yas - smallint
	)

Yukarıdaki tablo oluşturma ve veri ekleme işlemini yaptıysanız şimdi örnek kod bloğumuzu çalıştıralım.

DECLARE @ad NVARCHAR(100)
DECLARE @soyad NVARCHAR(100)
DECLARE @yas SMALLINT

SELECT 
@ad=Ad,
@soyad=Soyad,
Yas
FROM dbo.OrnekTablo

Declare kısmından aşağı doğru kodlarımızı seçerek F5 tuşuna basıp çalıştırdığımız zaman istediğimiz hatayı almış olacağız.

Hatanın nedenine gelince.

@ad=Ad, @soyad=Soyad olarak bir tanımlanma mevcut fakat Yas kısmında bu şekilde bir tanımlanma mevcut değil. Ya Yas alanını buradan çıkarmamız gerek ya da Yas alanında şu şekilde bir tanımlama yapmamız gerek.

Kısacası aşağıdaki gibi yazmalıyız.

DECLARE @ad NVARCHAR(100)
DECLARE @soyad NVARCHAR(100)
DECLARE @yas SMALLINT

SELECT 
@ad=Ad,
@soyad=Soyad,
@yas=Yas
FROM dbo.OrnekTablo

--ya da 


DECLARE @ad NVARCHAR(100)
DECLARE @soyad NVARCHAR(100)

SELECT 
@ad=Ad,
@soyad=Soyad,
--Yas kısmını çıkardık
FROM dbo.OrnekTablo

--ya da 

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir