Я сейчас изучаю SQL и пытаюсь придумать упражнения для себя, и я не могу заставить это работать, хотя это кажется простым:
Я пытаюсь запустить курсор через всеотфильтрованные таблицы в моей базе данных, чтобы затем я мог передать это имя таблицы переменной, которая будет использоваться в DynamicSQL внутри курсора.Конечным результатом должны быть все значения из каждого столбца, в котором есть столбец empid.Тем не менее, сообщение возвращается как «Команды завершены успешно», но я не вижу результатов, несмотря на мой оператор выбора.
Я пытаюсь запустить что-то вроде этого:
declare @tablename nvarchar(200);
declare @empid int;
declare @sql nvarchar(200) = N'select * from ' + @tablename + N' where empid = ' +@empid;
declare tablecursor cursor for select table_name from information_schema.tables where col_length(table_name, 'empid') is not null;
open tablecursor;
fetch next from tablecursor into @tablename;
while @@fetch_status = 0
begin
execute sp_executesql @sql, 825
fetch next from tablecursor into @tablename;
end
close tablecursor;
deallocate tablecursor;
I 'везде искал ответы, чтобы сделать эту работу, но ничего не могу найти.Я пытался вставить хранимую процедуру и затем выполнить ее оттуда, но это тоже не сработало.
Помощь будет высоко оценена.