Добавить столбец и обновить его в транзакции

Я пытаюсь добавить и обновить столбец. Этот код находится внутри транзакции.

ALTER TABLE [Foo] ADD SomeId INT NULL UPDATE [Foo] SET SomeId = 1 ALTER TABLE [Foo] ALTER COLUMN SomeId INT NOT NULL 

Я получаю эту ошибку:

Msg 207, уровень 16, состояние 1, строка 5 Недопустимое имя столбца «SomeId».

Я попытался добавить инструкцию GO после первого ALTER TABLE , но, видимо, это недопустимо внутри транзакции. Как я могу сделать эту работу внутри транзакции?

Попробуй это:

 Begin Try Begin Tran Alter Table [Foo] Add SomeId INT NOT NULL Constraint TempConstraint Default (1) Alter Table [Foo] Drop TempConstraint End Tran 

По существу, это добавление нового столбца со значением по умолчанию, равным 1. Все текущие строки получат значение 1. Тогда значение ограничения по умолчанию удаляется, поэтому значение по умолчанию не будет.

Поскольку вы не можете смешивать заявления DDL и DML в одной транзакции, например, что вы хотели сделать изначально, это ваша единственная альтернатива.

  • Доступ к SQL Server 2012 из Windows XP
  • Суммарная сумма, основанная на последовательных значениях
  • Типы возвращаемых данных UNPIVOT
  • Элемент группы, фильтровать их и подсчитывать с помощью sql
  • Есть ли способ скрыть столбец из таблицы в SQL Server 2012?
  • Получите результат «ИЛИ» всех строк столбца бит
  • SQL Server 2012: отличается от предложения over в агрегатной функции
  • Тип данных таблицы таблиц SQL Server
  • SQL Query, чтобы вернуть верхние 2 значения
  • как вычесть два раза в sql-сервере?
  • возможно ли автозаполнение имени столбца в запросе SSMS
  • Interesting Posts

    RegEX заменит «TOP ZZZZ» в строке запроса SQL Server

    оптимизация запросов на Sql Server 2005

    Получите количество сотрудников, которые работали в нескольких отделах с SQL-запросом

    Entity Framework: Insert вызывает нарушение ограничения PRIMARY KEY с использованием Azure SQL, а не локального

    Неправильный синтаксис рядом с ключевым словом «set» вместе с пунктом

    TSQL – как определить, сгруппирован ли SQL?

    SQL Self-Join Результаты внутри основного результата (не отдельный столбец)

    Как добавить LocalDB в Visual Studio 2015 Community Explorer для SQL Server Explorer?

    Дисплей HH: мм от десятичной (Hm)

    Пробная колонка в клиентской статистике SQL

    Почему ORDER BY DATEDIFF вызывает исключение на сервере SQL с использованием JPA?

    Откат к определенной миграции в FluentMigrator

    Создание плана времени на основе времени начала и окончания и значения в час

    как получить сумму (col2) как somename, (col2 * col3) / Sum (col2) как somename1 для некоторой даты

    Неправильный синтаксис рядом с ключевым словом «DEFAULT» – невозможно изменить таблицу

    Давайте будем гением компьютера.