![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Использование таблиц и полей в качестве параметров хранимых про-
Kostafey © (2007-09-22 00:58:00)-цедур TSQL (MS SQL Server 2005). Идея в следующем:
use [SomeDataBase]
GO
IF OBJECT_ID ('CleanTable', 'P') IS NOT NULL
DROP PROCEDURE CleanTable
GO
CREATE PROCEDURE CleanTable(@TableName char, @FieldName char, @NumberOfFields int)
AS
DELETE FROM @TableName WHERE @FieldName not in
(select TOP(@NumberOfFields) @FieldName from @TableName);
GO
EXECUTE CleanTable 'FRC3', 'N_ZVK', 3;
EXECUTE CleanTable 'FRC41', 'N_ZVK', 3;
...
Правда он вылетает с сообщением
Msg 1087, Level 15, State 2, Procedure CleanTable, Line 3
Must declare the table variable "@TableName"
Megabyte (2007-09-24 10:23:00) [1]Справку читаем по встроенной ХП sp_executesql
Gadenysh (2007-09-23 13:23:00) [2]BOL - Exec
Kostafey (2007-09-22 02:30:00) [3]> [6] Turbouser © (22.09.07 01:49)
Н-да, тяжеловато разобраться...
Turbouser (2007-09-22 01:49:00) [4]> [5] Kostafey © (22.09.07 01:43)
rtfm BOL или что там у мс
Kostafey (2007-09-22 01:43:00) [5]> А насчет генератора кода — достаточно к системным таблицам
> построить запрос и все дела.
Это как?
Turbouser (2007-09-22 01:36:00) [6]> [1] Kostafey © (22.09.07 01:01)
Бред в чистом виде. такое лучше реализовывать на клиенте/сервере приложений.
> [3] Kostafey © (22.09.07 01:31)
Честно незнаю как в mssql, но в fb к примеру, есть execute statement
я по потому такую идею бредом назвал, т.к. в свое время с этим самым
execute statement очень плотно работал :) в итоге всеравно лучше
обходиться без таких «универсальных» средств.
А насчет генератора кода достаточно к системным таблицам построить
запрос и все дела.
Kostafey (2007-09-22 01:31:00) [7]> Бред в чистом виде. такое лучше реализовывать на клиенте/сервере
> приложений.
Бред-то бред. Но мне никак не верится, что такое седствами SQL
нельзя реализовать. Задача ведь по сути разовая.
Писать под нее приложение?
Проще уж тогда генератор кода найти да влоб команды SQL
сгенерировать без использования Procedure.
Turbouser (2007-09-22 01:28:00) [8]> [1] Kostafey © (22.09.07 01:01)
Бред в чистом виде. такое лучше реализовывать на клиенте/сервере приложений.
Kostafey (2007-09-22 01:01:00) [9]> @NumberOfFields
Читать как @NumberOfRecords