Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 как убрать у поля свойство IDENTITY ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
есть две таблицы, мастер-детайл, у мастера ключ - идентити.

Как убрать свойство идентити?
26 авг 11, 10:52    [11183119]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
J.d
Member

Откуда: Москва
Сообщений: 691
наверно через дизайнер!

К сообщению приложен файл. Размер - 8Kb
26 авг 11, 10:55    [11183159]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
J.d
наверно через дизайнер!


настоящим девелоперам дизайнер не подходит. Только скриптом!

кстати дизайнер не хочет менять свойство
26 авг 11, 10:59    [11183196]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Уленшпигель
Member

Откуда:
Сообщений: 115
Winnipuh,

ALTER TABLE x
ALTER COLUMN y int
26 авг 11, 11:00    [11183207]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Winnipuh
кстати дизайнер не хочет менять свойство

А вы внимательно прочитали сообщение, которое при этом пишется ?
26 авг 11, 11:02    [11183226]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Уленшпигель
Winnipuh,

ALTER TABLE x
ALTER COLUMN y int
Вон оно что, оказывается!
А мужики-то незнают! ©
26 авг 11, 11:08    [11183287]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
iap
Уленшпигель
Winnipuh,

ALTER TABLE x
ALTER COLUMN y int
Вон оно что, оказывается!
А мужики-то незнают! ©


это я вас проверял
26 авг 11, 11:45    [11183682]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
iap
Уленшпигель
Winnipuh,

ALTER TABLE x
ALTER COLUMN y int
Вон оно что, оказывается!
А мужики-то незнают! ©


прошу отписаться здесь тех, у кого данная рекомендация сработала
посмеемся вместе
26 авг 11, 11:48    [11183725]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5126
Winnipuh
есть две таблицы, мастер-детайл, у мастера ключ - идентити.

Как убрать свойство идентити?

это у вас рефакторинг или логика софта?
26 авг 11, 11:51    [11183755]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Дедушка
Winnipuh
есть две таблицы, мастер-детайл, у мастера ключ - идентити.

Как убрать свойство идентити?

это у вас рефакторинг или логика софта?


1. одно другому не противоречит
2. а какая разница?
3. скорее рефакторинг

;-)
26 авг 11, 11:52    [11183765]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Дедушка
Winnipuh
есть две таблицы, мастер-детайл, у мастера ключ - идентити.

Как убрать свойство идентити?

это у вас рефакторинг или логика софта?
Это Identity не апдейтится: https://www.sql.ru/forum/actualthread.aspx?tid=875695
26 авг 11, 11:52    [11183771]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Гавриленко Сергей Алексеевич
Дедушка
пропущено...

это у вас рефакторинг или логика софта?
Это Identity не апдейтится: https://www.sql.ru/forum/actualthread.aspx?tid=875695


ага
26 авг 11, 12:03    [11183901]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Winnipuh
Дедушка
пропущено...

это у вас рефакторинг или логика софта?


1. одно другому не противоречит
2. а какая разница?
3. скорее рефакторинг

;-)


скорее похоже на сваливание в штопор говнокода, одумайтесь пока не поздно:)
26 авг 11, 12:11    [11183971]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Уленшпигель
Member

Откуда:
Сообщений: 115
Winnipuh
прошу отписаться здесь тех, у кого данная рекомендация сработала
посмеемся вместе


у меня сработала. только вот на мой identity не ссылались из других таблиц. А если бы вы, по совету Glory, прочли сообщение об ошибке и/или статью в справке, то может и у вас бы сработала. После дополнительных телодвижений.
26 авг 11, 12:13    [11183986]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
WarAnt
Winnipuh
пропущено...


1. одно другому не противоречит
2. а какая разница?
3. скорее рефакторинг

;-)


скорее похоже на сваливание в штопор говнокода, одумайтесь пока не поздно:)


жостко сказано.. интересно о чем это вы так категорично?

я задал простой вопрос..
26 авг 11, 12:14    [11183991]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
iljy
Member

Откуда:
Сообщений: 8711
Уленшпигель
Winnipuh
прошу отписаться здесь тех, у кого данная рекомендация сработала
посмеемся вместе


у меня сработала. только вот на мой identity не ссылались из других таблиц. .

Да ну? А вы смотрели, что именно сработало?
use tempdb
create table TTT (id int identity)
insert TTT default values
insert TTT default values
insert TTT default values

select name, is_identity from sys.columns
where object_id = OBJECT_ID('TTT')

ALTER TABLE TTT ALTER COLUMN id int

select name, is_identity from sys.columns
where object_id = OBJECT_ID('TTT')
go
insert TTT(id) values(5)
go
drop table TTT
26 авг 11, 12:19    [11184027]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Уленшпигель
Winnipuh
прошу отписаться здесь тех, у кого данная рекомендация сработала
посмеемся вместе


у меня сработала. только вот на мой identity не ссылались из других таблиц. А если бы вы, по совету Glory, прочли сообщение об ошибке и/или статью в справке, то может и у вас бы сработала. После дополнительных телодвижений.
Версию опубликуете?
PRINT @@VERSION
26 авг 11, 12:20    [11184038]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
iljy
Member

Откуда:
Сообщений: 8711
Уленшпигель,

а вот так еще интереснее
create table TTT (id int identity)
insert TTT default values
insert TTT default values
insert TTT default values

select name, is_identity, c.system_type_id from sys.columns c
where object_id = OBJECT_ID('TTT')

ALTER TABLE TTT ALTER COLUMN id bigint

select name, is_identity, c.system_type_id from sys.columns c
where object_id = OBJECT_ID('TTT')
go
ALTER TABLE TTT ALTER COLUMN id real

select name, is_identity, c.system_type_id from sys.columns c
where object_id = OBJECT_ID('TTT')
go
insert TTT(id) values(5)
go
drop table TTT
26 авг 11, 12:22    [11184056]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Уленшпигель
Winnipuh
прошу отписаться здесь тех, у кого данная рекомендация сработала
посмеемся вместе


у меня сработала. только вот на мой identity не ссылались из других таблиц. А если бы вы, по совету Glory, прочли сообщение об ошибке и/или статью в справке, то может и у вас бы сработала. После дополнительных телодвижений.


увы, мне нужно скриптом это делать, я писал выше.
26 авг 11, 12:23    [11184063]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
iljy
Member

Откуда:
Сообщений: 8711
Winnipuh
увы, мне нужно скриптом это делать, я писал выше.

Сделайте в дизайнере и заскриптуйте сценарий. Но я вам и так могу сказать, что оно делает:
1. Создает новое поле;
2. Копирует в него значения;
3. Скриптует все ключи-ограничения-индексы, ссылающиеся на старое;
4. Удаляет старое;
5. Переименовывает новое;
6. Восстанавливает ключи-ограничения-индексы.
26 авг 11, 12:28    [11184094]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
В версии SQL Server Compact, или как там она сейчас называется, identity действительно можно снять через alter column. Так что ничего смешного, особенно учитывая, что ни одной версии до сих пор не было опубликовано :).
26 авг 11, 12:30    [11184103]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Уленшпигель,

покажите телодвижения!
26 авг 11, 12:34    [11184136]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Ennor Tiegael
В версии SQL Server Compact, или как там она сейчас называется, identity действительно можно снять через alter column. Так что ничего смешного, особенно учитывая, что ни одной версии до сих пор не было опубликовано :).


вот тут вы правы, но я бы скорее по умолчанию подумал про "взрослую" версию SQL Server, но ни как не про компакт
26 авг 11, 12:34    [11184142]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
iljy
Winnipuh
увы, мне нужно скриптом это делать, я писал выше.

Сделайте в дизайнере и заскриптуйте сценарий. Но я вам и так могу сказать, что оно делает:
1. Создает новое поле;
2. Копирует в него значения;
3. Скриптует все ключи-ограничения-индексы, ссылающиеся на старое;
4. Удаляет старое;
5. Переименовывает новое;
6. Восстанавливает ключи-ограничения-индексы.


спасибо, я так и делаю, точнее сложнее, переименование не проходит: сначала убираю подчиненную таблицу, потом мастер, потом восстанавливаю их и возвращаю данные.
26 авг 11, 12:36    [11184149]     Ответить | Цитировать Сообщить модератору
 Re: как убрать у поля свойство IDENTITY ?  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
Уленшпигель
Winnipuh
прошу отписаться здесь тех, у кого данная рекомендация сработала
посмеемся вместе


у меня сработала. только вот на мой identity не ссылались из других таблиц. А если бы вы, по совету Glory, прочли сообщение об ошибке и/или статью в справке, то может и у вас бы сработала. После дополнительных телодвижений.

Секрет прост -- identity никуда не делось:
use tempdb;
go
create table dbo.t (i int identity);
insert into dbo.t default values;
insert into dbo.t default values;
go
alter table dbo.t alter column i int;
go
select columnproperty(object_id('dbo.t', 'U'), 'i', 'IsIdentity');
go
drop table dbo.t;
go
26 авг 11, 12:39    [11184182]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить