اگه می خوای برای گزارش گیری شماره سطر داشته باشی یه راه خیلی ساده هست:
فرض کن جدول شما داری 2 تا column هست، ID که همون Identity هست که تعریف کردی و Name.
برای درست کردن یه Table واسه تست سکریپت زیر رو اجرا کن:
CREATE TABLE PERSON (ID INT IDENTITY PRIMARY KEY, NAME VARCHAR(MAX))
INSERT INTO PERSON (NAME) VALUES ('ALI')
INSERT INTO PERSON (NAME) VALUES ('MAJID')
INSERT INTO PERSON (NAME) VALUES ('REZA')
INSERT INTO PERSON (NAME) VALUES ('MAHMOUD')
INSERT INTO PERSON (NAME) VALUES ('ABBAS')
INSERT INTO PERSON (NAME) VALUES ('BIJAN')
INSERT INTO PERSON (NAME) VALUES ('GHOLI')
اگه جدول بالا رو Select * from Person کنی این جواب رو می بینی:
ID NAME
1 ALI
2 MAJID
3 REZA
4 MAHMOUD
5 ABBAS
6 BIJAN
7 GHOLI
حالا داده های سطرهای 3 و 6 رو حذف می کنیم:
DELETE FROM PERSON
WHERE ID IN (3, 6)
دوباره Select میزنیم و نتیجه اینه:
ID NAME
1 ALI
2 MAJID
4 MAHMOUD
5 ABBAS
7 GHOLI
حالا شما می خوای شماره سطر بدی بهش، Query شما اینجوری می شه:
SELECT ID
, NAME
, ROW_NUMBER() OVER(ORDER BY NAME) SEQUENCE
FROM PERSON
جوابی که می بینی اینه:
ID NAME SEQUENCE
5 ABBAS 1
1 ALI 2
7 GHOLI 3
4 MAHMOUD 4
2 MAJID 5
زیر ستون Sequence شماره سطر داری.
بدون درد و خونریزی!