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;

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

551 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!