
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
30.10.2002, 15:21:48
|
|||
|---|---|---|---|
|
|||
Названия таблицы и столбцов в качестве параметров |
|||
|
#18+
Можно ли средствами MsSql сделать следующую вещь: У меня над несколькими таблицами должна производится однотипная операция. Меняется только название таблицы и нескольктй полей, а логика остается. Можно ли как-то использовать названия таблиц и полей в качестве параметров? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2002, 15:34:28
|
|||
|---|---|---|---|
Названия таблицы и столбцов в качестве параметров |
|||
|
#18+
Думаю здесь нужно динамически генерить скрипт и выполнять его. Писал тут такую вещь. Может сгодится. /******************************************************************************** * скрипт ищет поля во всех таблицах базы, содержащие заданное значение * ********************************************************************************/ 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2002, 15:44:56
|
|||
|---|---|---|---|
Названия таблицы и столбцов в качестве параметров |
|||
|
#18+
Можно, например: Код: plaintext 1. 2. 3. 4. 5. Однако, я бы не советовал пользоваться динамическими запросами без крайней нужды. Динамический запрос это новая сессия. Динамические запросы будут каждый раз проверятся на синтаксис и компилироваться, в отличии от статических с которыми это происходит один раз при первом запуске. При ошибке синтаксиса в динамическом запросе, прерывается выполнение всех следующих операторов. При динамическом запросе надо давать разрешения пользователю на работу с таблицами напрямую. Поэтому могу посоветовать написать несколько процедур, при похожей логике достаточно написать руками одну а остальные скопировать и поправить названия таблиц и полей, т.е времени затратите не много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&tablet=1&tid=1819210]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 345ms |

| 0 / 0 |
