Я пытаюсь создать один динамический запрос и выполнить его, в этом запросе имя таблицы должно меняться во время выполнения, шаблон имени таблицы, который должен меняться во время выполнения, - "D_M".Пожалуйста, смотрите код для дальнейшего уточнения.
Ниже приведен код, который я не могу выполнить:
DECLARE @MyCursor
CURSOR,@ChannelName NVARCHAR(max),@ChannelNumber NVARCHAR(max),@sqlstring NVARCHAR(max);BEGIN
SET @MyCursor =
CURSOR FOR
SELECT mirthdb.dbo.channel.NAME,
mirthdb.dbo.d_channels.local_channel_id
FROM mirthdb.dbo.d_channels,
mirthdb.dbo.channel
WHERE mirthdb.dbo.channel.id = mirthdb.dbo.d_channels.channel_id
AND mirthdb.dbo.channel.NAME LIKE '0%'
OPEN @MyCursor
FETCH next
FROM @MyCursor
INTO @ChannelName,
@ChannelNumber;
WHILE @@FETCH_STATUS=0
BEGIN
SET @sqlstring = 'select' +(@ChannelName),
('select count(*) from mirthdb.dbo.D_M'+@ChannelNumber)
EXEC(@sqlstring)
--print @ChannelNumber
FETCH next
FROM @MyCursor
INTO @ChannelName,
@ChannelNumber
END
CLOSE @MyCursor;
DEALLOCATE @MyCursor;
END;
Я пытаюсь получить следующий набор результатов: Название канала: Номерполученных сообщений test_name1: 2 test_name2: 4 test_name3: 0