![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: нет Всего: 7 |
Не регистрируется. MS SQL 2008. Incorrect syntax near '@T'. для строки SET IDENTITY_INSERT @T OFF . Если эту строку закомментировать, хотя она необоходима для последующего инсерта, чтобы не было попыток в столбец перв. ключа вставлять, то ошибка меняется. Якобы переменная T не объявлена. Успел уже скурить справку от MS и кучу примеров, но ничего не выкурилось. ![]() -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Взять имя таблицы из переменной - нельзя.
-------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: нет Всего: 7 |
Как можно обойти, чтобы для каждой таблицы свою процедуру не писать? (Всего таблиц 10)
Если совсем никак, и надо 10 хранимок, то как правильно сделать вставку, чтобы не было попыток вставки в автоинкрементное поле? -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Зависит от того, что надо - отменить такую операцию или изъять значение для автоинкремента и провенсти операцию. В любом случае задача легко решается триггером.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: нет Всего: 7 |
Нужно переписать в виде хранимой процедуры запрос типа
Где ТаблицаХ одна из таблиц вида Int PK автоинкрементный Int DateTime Real Потому что, этот запрос вызывается примерно 300 000 раз, что негативно влияет на скорость и юзверь негодует. Это сообщение отредактировал(а) Beltar - 14.2.2013, 20:53 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
А откуда такая убеждённость, что процедура будеть работать быстрее? Может, надо последовать совету, и описывать задачу, а не свои попытки её решить? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: нет Всего: 7 |
Задачу я и так решил одним способом, если он не устраивает, стоит попробовать второй.
По идее хранимка, как откомпилированный код должна работать быстрее всех. Однако в этот раз не оправдалось. Я попробовал хранимку с фиксированным именем таблицы, скорость оказалась примерно такой же, как и при использовании компонента для запроса на клиенте с фиксированным текстом и параметрами. Если, конечно, у запроса prepared включить. В общем так и оставлю, хотя вопрос передачи имени таблицы, как параметра, остался нерешенным. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Нет. Тезис в принципе неверен для SQL-серверов, где хранимки - не более чем кривой костыль, созданный в угоду процедурно-ориентированным программистам, неспособным понять принципы работы SQL-сервера. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |