powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Названия таблицы и столбцов в качестве параметров
3 сообщений из 3, страница 1 из 1
Названия таблицы и столбцов в качестве параметров
    #32063180
alex_mazurov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли средствами MsSql сделать следующую вещь:
У меня над несколькими таблицами должна производится однотипная операция. Меняется только название таблицы и нескольктй полей, а логика остается. Можно ли как-то использовать названия таблиц и полей в качестве параметров?
...
Рейтинг: 0 / 0
Названия таблицы и столбцов в качестве параметров
    #32063188
Abel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю здесь нужно динамически генерить скрипт и выполнять его. Писал тут такую вещь. Может сгодится.
/********************************************************************************
* скрипт ищет поля во всех таблицах базы, содержащие заданное значение *
********************************************************************************/
use sql1c --если здесь выбрать другую базу, то поиск будет осуществляться в ней
declare allColumns cursor local forward_only read_only for
select so.name,sc.name from sysobjects so join syscolumns sc on so.id=sc.id
where so.xtype='U ' and so.name like 'sc%' order by so.name
-- sc% - маска проверяемых таблиц,
-- т.е. в данном случае поиск осуществляется только в таблицах с названиями, начинающимися с 'sc'

declare @tableName sysname, @columnName sysname, @searchValue varchar(100)
set @searchValue='291L' --здесь собственно вводится искомое значение (можно использовать маску)

open allColumns
while 0=0
begin
fetch next from allColumns into @tableName, @columnName
if @@fetch_status<0 break

exec(N'declare @rows int
select @rows=isnull(count(*),0) from ' + @tableName + ' where ' + @columnName + ' like '''+ @searchvalue + '''
if @rows>0
begin ' + '
print ' + ''''+ @tablename +''' + '' '' + ''' + @columnname +'''
select * from ' + @tableName + ' where ' + @columnName + ' like '''+ @searchvalue +'''
end
')
end
...
Рейтинг: 0 / 0
Названия таблицы и столбцов в качестве параметров
    #32063195
fima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, например:
Код: plaintext
1.
2.
3.
4.
5.
declare @execute_string varchar ( 8000 )
	@table_name varchar ( 255 )
set @table_name = '<имя таблицы>'
set @execute_string = 'select * from ' + @table_name
execute (@execute_string)

Однако, я бы не советовал пользоваться динамическими запросами без крайней нужды.
Динамический запрос это новая сессия.
Динамические запросы будут каждый раз проверятся на синтаксис и компилироваться, в отличии от статических с которыми это происходит один раз при первом запуске.
При ошибке синтаксиса в динамическом запросе, прерывается выполнение всех следующих операторов.
При динамическом запросе надо давать разрешения пользователю на работу с таблицами напрямую.
Поэтому могу посоветовать написать несколько процедур, при похожей логике достаточно написать руками одну а остальные скопировать и поправить названия таблиц и полей, т.е времени затратите не много.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Названия таблицы и столбцов в качестве параметров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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