PDA

View Full Version : تعداد رکوردها چندین جدول



hr110
دوشنبه 07 دی 1383, 13:56 عصر
با سلام
من یک جدول دارم که مشخصات چندین جدول از همان دیتابیس را نگه میدارد و یکی از فیلدهای ان نیز نام جدول است(اسمی که اسکیوال از ان استفاده میکند) حال اگر بخواهم تعداد رکوردهای این جداول را با یک دستور بدهم ، چگونه باید عمل کرد ، البته بدون stored procedure و cursorها

AminSobati
چهارشنبه 09 دی 1383, 12:37 عصر
دوست عزیزم،
فرض میکنیم جدولی دارید با این ساختار و رکوردهای نمونه:

CREATE TABLE MyTables(
TabID int,
TabName nvarchar(20))
go
INSERT MyTables(TabID,TabName) VALUES (1,'Northwind..Customers')
INSERT MyTables(TabID,TabName) VALUES (1,'Northwind..Orders')
INSERT MyTables(TabID,TabName) VALUES (1,'Northwind..Products')
INSERT MyTables(TabID,TabName) VALUES (1,'Northwind..Employees')
برای بدست آوردن تعداد رکوردهای هر جدول مینویسیم:

DECLARE @Stack nvarchar(4000)
SET @Stack=''
SELECT @Stack=@Stack+'SELECT ''' + TabName + ''',COUNT(*) FROM ' + TabName + ' UNION ALL ' FROM MyTables
SET @Stack=SUBSTRING(@Stack,1,LEN(@Stack)-10)
EXEC (@Stack)
موفق باشید

hr110
چهارشنبه 09 دی 1383, 13:02 عصر
جناب ثباتی از بذل توجهتان تشکر میکنم، آیا این کار بدون کرسرها هم ممکن است؟

AminSobati
چهارشنبه 09 دی 1383, 14:13 عصر
به نظر شما من از کرسر استفاده کردم؟!!