![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
SoulB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
Имеются 2 таблицы Persons и Users. Нужно переместить данные из столбцов [FirstName], [LastName], [Gender], [CountryId], [CityId] int, [isNotifiedByEmail] таблицы Persons в таблицу Users (в Users нужно создать такие столбцы). Как я делаю:
Создаю табличную переменную, засовываю туда данные, которые нужно переместить (+колонка с identity для индексации). Делаю ALTER TABLE Users ADD <нужные столбцы>. В цикле загоняю из временной таблицы в новые столбцы. Затем уже создаю форейн кейсы. В чем проблема: Дело в том что компилироваться не хочет. Если столбцы еще не созданы, а в коде в начале есть добавление в таблицу новых столбцов, то компилятор все равно сообщает, что таких полей нет. Если в начале отдельно создать поля, а затем запустить код с добавлением, то работает отлично. Как решить проблему7 Нужно все сделать в одном запросе в виде скрипта для апдейта базы, без использования и создания stored procedures. Подключаю код, то что нахимичил:
|
|||
|
||||
Zioma |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 22.8.2007 Репутация: 5 Всего: 5 |
В 2008-м такая конструкция отрабатывает.
Под рукой нет 2000-ого и 2005-ого, но по-моему там такое решалось именно с помощью sp_executesql. |
|||
|
||||
SoulB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
Все решилось. Оказывается после каждого использования ALTER TABLE следует ставить GO. Как я понял - это отделяет блок как отдельный пакет, что мне и нужно было
![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
Ну в общем очевидно. Во-первых, во всех примерах в MSDN именно так. Во-вторых, попробуй думать как сервер: юзер сказал поменять это, юзер сказал поменять то... блин, а "то" менять в том, что получится, если поменять "это", или нет? а вот хрен его знает... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
SoulB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "MS SQL" | |
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS SQL Server | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |