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.