powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ... from @table_name
8 сообщений из 8, страница 1 из 1
... from @table_name
    #32040495
unreger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как бы такое сделать?
...
Рейтинг: 0 / 0
... from @table_name
    #32040496
Фотография AVL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
declare @t as varchar(100)
set @t='table1'
execute('select * from '+@t)
...
Рейтинг: 0 / 0
... from @table_name
    #32040497
unreger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуй надо подробнее: хочется узнать, есть ли записи ссылающиеся на данную (по всем пользовательским табличкам, в т.ч. и будущим)
По системным таблицам нахожу имена связанных таблиц и полей. ID проверяемой записи из словаря у меня есть.

set @str_query = N' select @counter = count(PKID) from @tn where @fn = @rid '
set @str_param = N' @tn varchar(50), @fn varchar(50), @rid int, @counter int OUTPUT '
execute sp_executesql @str_query, @str_param , @table_name, @field_name, @record_id, @rez_count

пробовал и просто собирать строку для execute - проходит, но не получается возвратить результат
(т.е в QA видно, но как в переменную загнать - не соображу)
...
Рейтинг: 0 / 0
... from @table_name
    #32040502
unreger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот идея - создавать кодом для каждого набора параметров временную хранимую процедуру. Наверное, будет работать. И если мне никто не, то.
...
Рейтинг: 0 / 0
... from @table_name
    #32040503
Фотография AVL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
insert into #t
execute ('select count(*) from '+@t+' where id='+@id)
set @count=(select cnt from #t)
...
Рейтинг: 0 / 0
... from @table_name
    #32040504
Фотография AVL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
declare @count int, @t varchar(100), @id varchar(5)
set @t='table1'
set @id='1'
create table #t (cnt int)
insert into #t
execute ('select count(*) from '+@t+' where id='+@id)
set @count=(select cnt from #t)
print @count
drop table #t
...
Рейтинг: 0 / 0
... from @table_name
    #32040523
unreger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про таблицы я уже подумал

Жаль.

А зачем drop table #t ? Вроде как sp отработала - удаляется само?
...
Рейтинг: 0 / 0
... from @table_name
    #32040547
Фотография AVL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да...да... это просто для QA
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ... from @table_name
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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