Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ALTER / 7 сообщений из 7, страница 1 из 1
06.11.2002, 16:08:08
    #32065482
Kirill Krasnov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALTER
Как можно добавить новый столбец не в конец таблицы, а между при помощи команды ALTER TABLE?
...
Рейтинг: 0 / 0
06.11.2002, 16:23:06
    #32065495
Left Margin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALTER
А зачем между? И как это между? Насколько я понимаю, способ внутреннего хранения данных SQL сервером может отличаться от нашего о нем представления. Единственное, на что это может повлиять - это когда SELECT * FROM TABLE_NAME. Ну, так странно как-то использовать такие конструкции.
...
Рейтинг: 0 / 0
06.11.2002, 16:29:54
    #32065502
ak@
ak@
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALTER
Простейший способ - открываешь свою таблицу (правым кликом, выбираешь Design Table). Делаешь изменения, которые тебе нужны, а затем в тулбаре есть такая кнопка "Save change script", жмешь ее и видишь скрипт, который это все делает. Одно но - просто вставить между не получиться - посмотри все сам поймешь.
...
Рейтинг: 0 / 0
06.11.2002, 16:38:35
    #32065511
Kirill Krasnov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALTER
Дело в том, что для изменения во всех филиалах нужно сформировать скрипт. А в скрипте формирующий после ручного изменения он создает таблицу, а не изменяет. НУЖНО ИМЕННО ДЛЯ ИЗМЕНЕНИЯ.
...
Рейтинг: 0 / 0
06.11.2002, 16:40:23
    #32065513
Left Margin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALTER
А все же - зачем так, почему в конец не подходит?
...
Рейтинг: 0 / 0
06.11.2002, 16:50:33
    #32065521
ak@
ak@
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALTER
Приготовим табличку

CREATE TABLE dbo.Table1
(
id int NOT NULL IDENTITY (1, 1),
somefield varchar(50) NULL
) ON [PRIMARY]
-------------------------------------
Вставим "между первым и вторым"

BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
CREATE TABLE dbo.Tmp_Table1
(
id int NOT NULL IDENTITY (1, 1),
field2 int NULL,
somefield varchar(50) NULL
) ON [PRIMARY]
GO
SET IDENTITY_INSERT dbo.Tmp_Table1 ON
GO
IF EXISTS(SELECT * FROM dbo.Table1)
EXEC('INSERT INTO dbo.Tmp_Table1 (id, somefield)
SELECT id, somefield FROM dbo.Table1 TABLOCKX')
GO
SET IDENTITY_INSERT dbo.Tmp_Table1 OFF
GO
DROP TABLE dbo.Table1
GO
EXECUTE sp_rename N'dbo.Tmp_Table1', N'Table1', 'OBJECT'
GO
COMMIT
...
Рейтинг: 0 / 0
06.11.2002, 17:04:16
    #32065532
Kirill Krasnov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALTER
А компактнее нельзя?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ALTER / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]