SQL - добавление нового столбца без влияния на существующие скрипты - PullRequest
0 голосов
/ 23 мая 2018

У нас есть таблица на SQL Server 2008, которая заполняется различными хранимыми процедурами.Проблема заключается в том, что авторы этих хранимых процедур использовали какой-то неудачный выбор в коде и заполнили эту таблицу следующим синтаксисом:

INSERT INTO persistant_table
    SELECT * 
    FROM #temp_table_with_data

В основном они создали бы #temp_table_with_data в сценарии, и столбцы были быв том же порядке и с тем же именем, что и в persistant_table.

Теперь мне нужно добавить еще один столбец к этому persistant_table, но если я это сделаю, я сломаю все хранимые процедуры.

Есть ли способ добавить столбец в эту таблицу, не нарушая все хранимые процедуры?(В конечном итоге мы изменим хранимые процедуры).

Спасибо

Ответы [ 3 ]

0 голосов
/ 23 мая 2018

«ALTER TABLE» - это оператор SQL, который позволяет вносить изменения типа данных в таблицу базы данных (т. Е. Изменять тип данных, а также столбцы размера из существующей таблицы).

 ALTER TABLE TableName ALTER COLUMN ColumnName  NVARCHAR(200)
0 голосов
/ 23 мая 2018

Вы не можете сделать это, не затрагивая старые скрипты.Вот почему «SELECT *» не является хорошей практикой.Вам лучше создать новые сценарии с явными именами столбцов, такими как SELECT column1, column2 ....

0 голосов
/ 23 мая 2018

Нет, я думаю. Выбор * выберет все столбцы, и номер столбца должен совпадать.

Я не думаю, что это большое усилие, чтобы изменить строку, чтобы иметь только определенные столбцы, или выбрать оператор, чтобы иметь значение по умолчанию для столбца или ноль, а затем * для последовательного сохранения в столбцах.Но нужно изменить хотя бы 1 строку

...