powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MS SQL 2016. Функция возвращающая количество строк в любой таблице (параметр)
3 сообщений из 3, страница 1 из 1
MS SQL 2016. Функция возвращающая количество строк в любой таблице (параметр)
    #39681338
Vlad_Molodoj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Понадобилось мне разработать функцию, которая бы в качестве параметра принимала имя таблицы и возвращала количество записей этой таблицы. Подразумевается, что таблица существует.
Нижеприведеный код система пропускает.
Код: sql
1.
2.
3.
4.
5.
6.
7.
crete function [dbo].[fnCountRows] (@tblName varchar(max)) returns int as 
begin
  declare @res int = 0
  declare @Sql nvarchar(max) = 'select @CountRowsOut = count(*) from ' + @tblName + ' (nolock)'
  exec sp_executesql @Sql, N'@CountLinesOut int output', @CountRowsOut = @res Output
  return @res
end


Однако при запуске :
Код: sql
1.
2.
declare @c int = dbo.fnCountRows('MyTable')
print @c


ругается:
Only functions and some extended stored procedures can be executed from within a function.

Как обойти обойти это ограничение?
Понятно, что можно написать хранимую процедуру, которая возвращает количество строк во втором параметре с признаком Output

Может кому известны иные варианты?

Заранее благодарен за ответы
...
Рейтинг: 0 / 0
MS SQL 2016. Функция возвращающая количество строк в любой таблице (параметр)
    #39681339
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Откройте для себя sys.partitions и иже с нею.
...
Рейтинг: 0 / 0
MS SQL 2016. Функция возвращающая количество строк в любой таблице (параметр)
    #39681340
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей АлексеевичОткройте для себя sys.partitions и иже с нею.
+ sys.dm_db_index_physical_stats
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MS SQL 2016. Функция возвращающая количество строк в любой таблице (параметр)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]