У меня есть база данных с похожими таблицами.Каждой таблице присваиваются имена в год, например, с 1997, 1998 по 2019 год. Каждый год будет добавляться новая таблица с соответствующим названием года.В настоящее время я использую приведенный ниже код, чтобы получить счетчик определенного значения в таблице.
Приведенный ниже код вызывается внутри цикла for в приложении ASP.NET, в котором годы хранятся в массиве.Моя проблема заключается в том, чтобы каждый год мне приходилось обновлять массив в ASP.NET для добавленной таблицы на новый год.
Есть ли способ, которым я могу назвать все таблицы в базе данных и передать его в качестве параметра в приведенном ниже коде.
(
@TableName SysName,
@SearchInput NVARCHAR(50),
@SearchParam NVARCHAR(50)
)
AS
SET NOCOUNT ON;
DECLARE @SQL NVARCHAR(MAX) = N'SELECT COUNT(' +
QUOTENAME(@SearchParam) +
N') FROM ' +
QUOTENAME(@TableName) +
N' WHERE ' +
QUOTENAME(@SearchParam) +
N' LIKE ' +
QUOTENAME(@SearchInput, '''') +
N';';
EXEC @return_value = [dbo].[CountSP]
@TableName = N'1999',
@SearchParam = N'USERDESC',
@SearchInput = N'%lol%'