Что эквивалентно 'CREATE TABLE & # 8230; LIKE & # 8230; " в SQL Server
-
03-07-2019 - |
Вопрос
Я работаю с SQL Server (я нуб SQL Server) и пытаюсь изменить таблицу. Я хочу CREATE TABLE LIKE
, чтобы безопасно хранить данные, в то время как я удаляю ключи и ограничения, а также все другие ригаморолы, которые, как кажется, требуется SQL Server при изменении исходной таблицы, но я не смог найти соответствия к этой команде ...
Решение
Вы можете сделать
SELECT * INTO #MyTable_tmp ИЗ MyTable
Затем измените вашу MyTable и скопируйте ваши данные обратно. Другие подходы, которые я видел, - это создать новую таблицу с именем Mytable_Tmp (не временной), которая будет вашей новой таблицей.
Затем скопируйте данные, выполнив любые необходимые миграции. Затем вы сбросите исходную таблицу и сделаете переименование на Mytable. Р>
Или вы можете получить один из многих превосходных инструментов, которые сравнивают базы данных и генерируют разностные сценарии, или VSTS DB Edition (поставляется с разработчиком), и вы можете сделать diff-файл из файла проекта в БД.
Изменить
Когда вы запускаете SELECT * INTO #MyTable FROM MyTable, SQL Server создает новую временную таблицу с именем #MyTable, которая соответствует каждому столбцу и типу данных из вашего предложения select. В этом случае мы выбираем *, чтобы он соответствовал MyTable. Это только создает столбцы, которые не копируют значения по умолчанию, индексы ограничений или что-то еще. Р>
Другие советы
вы хотите воссоздать ту же структуру?
как насчет этого
SELECT *
into test
FROM myRealTable
where 0=1
данные не будут вставлены в новую таблицу