|
|
|
ALTER
|
|||
|---|---|---|---|
|
#18+
Как можно добавить новый столбец не в конец таблицы, а между при помощи команды ALTER TABLE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 16:08:08 |
|
||
|
ALTER
|
|||
|---|---|---|---|
|
#18+
А зачем между? И как это между? Насколько я понимаю, способ внутреннего хранения данных SQL сервером может отличаться от нашего о нем представления. Единственное, на что это может повлиять - это когда SELECT * FROM TABLE_NAME. Ну, так странно как-то использовать такие конструкции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 16:23:06 |
|
||
|
ALTER
|
|||
|---|---|---|---|
|
#18+
Простейший способ - открываешь свою таблицу (правым кликом, выбираешь Design Table). Делаешь изменения, которые тебе нужны, а затем в тулбаре есть такая кнопка "Save change script", жмешь ее и видишь скрипт, который это все делает. Одно но - просто вставить между не получиться - посмотри все сам поймешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 16:29:54 |
|
||
|
ALTER
|
|||
|---|---|---|---|
|
#18+
Дело в том, что для изменения во всех филиалах нужно сформировать скрипт. А в скрипте формирующий после ручного изменения он создает таблицу, а не изменяет. НУЖНО ИМЕННО ДЛЯ ИЗМЕНЕНИЯ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 16:38:35 |
|
||
|
ALTER
|
|||
|---|---|---|---|
|
#18+
А все же - зачем так, почему в конец не подходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 16:40:23 |
|
||
|
ALTER
|
|||
|---|---|---|---|
|
#18+
Приготовим табличку 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 16:50:33 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1819021]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 319ms |

| 0 / 0 |
