Нестандартная задача
возникла такая вот задача - нужно перечислить пользовательские таблицы в базе MS SQL 2000 и для каждой из них вывести количество строк.
Хотел было:
DECLARE @temp VARCHAR (75)
DECLARE MyCursor CURSOR LOCAL FOR
SELECT [name] FROM sysobjects
WHERE [xtype] = 'U'
ORDER BY [name]
OPEN MyCursor
FETCH MyCursor INTO @temp
WHILE ( @@FETCH_STATUS <> -1)
BEGIN
SELECT COUNT (*) FROM @temp --ошибка
FETCH MyCursor INTO @temp
END
Но так нельзя же!
Поможите, чем сумеете:)
Цитата:
Originally posted by KBH
Господа,
возникла такая вот задача - нужно перечислить пользовательские таблицы в базе MS SQL 2000 и для каждой из них вывести количество строк.
Хотел было:
DECLARE @temp VARCHAR (75)
DECLARE MyCursor CURSOR LOCAL FOR
SELECT [name] FROM sysobjects
WHERE [xtype] = 'U'
ORDER BY [name]
OPEN MyCursor
FETCH MyCursor INTO @temp
WHILE ( @@FETCH_STATUS <> -1)
BEGIN
SELECT COUNT (*) FROM @temp --ошибка
FETCH MyCursor INTO @temp
END
Но так нельзя же!
Поможите, чем сумеете:)
Господа,
возникла такая вот задача - нужно перечислить пользовательские таблицы в базе MS SQL 2000 и для каждой из них вывести количество строк.
Хотел было:
DECLARE @temp VARCHAR (75)
DECLARE MyCursor CURSOR LOCAL FOR
SELECT [name] FROM sysobjects
WHERE [xtype] = 'U'
ORDER BY [name]
OPEN MyCursor
FETCH MyCursor INTO @temp
WHILE ( @@FETCH_STATUS <> -1)
BEGIN
SELECT COUNT (*) FROM @temp --ошибка
FETCH MyCursor INTO @temp
END
Но так нельзя же!
Поможите, чем сумеете:)
А что за ошибка???
Нужно так:
exec 'SELECT Count (*) FROM ' + @Temp
по крайней мере на T-SQL.
Можно подробнее прочитать на
http://www.sql.ru/faq/faq_topic.aspx?fid=104