Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Изменения Значения Первичного Ключа  [new]
Nightingale
Member

Откуда:
Сообщений: 48
Здравствуйте.

В одной таблице необходимо изменить значения первичного ключа.
Таблица не связана с другими таблицами.
Возможно ли это сделать?
14 июн 16, 11:12    [19290351]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
Владислав Колосов
Member

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

Вы не знаете, что такое первичный ключ? С чем связан вопрос?
14 июн 16, 11:32    [19290456]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Nightingale,

https://technet.microsoft.com/en-us/library/ms181043(v=sql.105).aspx
или добавить колонку - заполнить - назначить PK- удалить старый - переименовать
14 июн 16, 11:54    [19290603]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
Nightingale
Member

Откуда:
Сообщений: 48
TaPaK,
Спасибо!
14 июн 16, 12:05    [19290669]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
o-o
Guest
ему ж надо просто значения поменять.
зачем Creating and Modifying PRIMARY KEY Constraints / добавить колонку - заполнить - назначить PK- удалить старый - переименовать?
create table dbo.t10(id int primary key, col int);
insert into dbo.t10 values(1,1), (2,2), (3,3);
go

update dbo.t10
set id = id + 1;
go

select *
from dbo.t10;

id col
2 1
3 2
4 3
-----------------
или что-то как-то хитро меняется типа 2 значения обменять местами?
14 июн 16, 12:35    [19290863]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
o-o,

identity?
14 июн 16, 12:45    [19290927]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
o-o
Guest
TaPaK
o-o,

identity?

где?
14 июн 16, 12:50    [19290955]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
o-o,

там где и суслик :)
14 июн 16, 12:52    [19290969]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
o-o
Guest
я за ТС условия не додумываю,
в вопросе про identity ничего нет,
как и в моем работающем примере
14 июн 16, 12:56    [19290999]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
o-o
я за ТС условия не додумываю,
в вопросе про identity ничего нет,
как и в моем работающем примере

как раз и додумываете. Не сказано есть/нет суслик(а) :)
14 июн 16, 13:00    [19291028]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
o-o
Guest
TaPaK
o-o
я за ТС условия не додумываю,
в вопросе про identity ничего нет,
как и в моем работающем примере

как раз и додумываете. Не сказано есть/нет суслик(а) :)

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

продолжим фантазировать или чем конкретно не устроил мой ответ на его вопрос,
как он в данный момент сформулирован?
14 июн 16, 13:13    [19291101]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
[quot o-o]
TaPaK
пропущено...

продолжим фантазировать или чем конкретно не устроил мой ответ на его вопрос,
как он в данный момент сформулирован?

автор
Возможно ли это сделать?

Возможно :)
14 июн 16, 13:16    [19291116]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
o-o
Guest
[quot TaPaK]
o-o
пропущено...

пропущено...

Возможно :)

вот!
Глори бы еще довбавил:
"возможно. делайте"
14 июн 16, 13:22    [19291142]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
o-o
Guest
в честь безрыбья и в продолжение полета фантазии
публикую полный код, делающий то же самое, что и мой первоначальный,
но черезж..но, чтобы позабавиться с пересозданием колонок,
а заодно демонстрирующий эффект "веселое вью".

по желанию публики id еще и identity

create table dbo.t (id int identity constraint PK_t_id primary key, dt date);

insert into dbo.t (dt) values ('20160101'), ('20160102'), ('20160103');
go

create view dbo.vw_t
as
	select *
	from dbo.t;
go

alter table dbo.t add id1 int;
update dbo.t
set id1 = id + 1;
go

alter table dbo.t drop constraint PK_t_id;
alter table dbo.t drop column id;

exec sp_rename 'dbo.t.id1' , 'id', 'column';
alter table dbo.t alter column id int not null;
alter table dbo.t add constraint PK_t_id primary key(id);

select *
from dbo.vw_t
where id = 2;

Msg 206, Level 16, State 2, Line 1
Operand type clash: date is incompatible with tinyint


good!

select id, dt
from dbo.vw_t;

id dt
2016-01-01 2
2016-01-02 3
2016-01-03 4
14 июн 16, 13:57    [19291328]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8839
o-o,

так это все не имеет отношения к обновлению ключа. Это пляски вокруг Identity, не стоит вестись на провокации :)
Ключ обновляется также, как и любое другое поле при условии выполнения целостности ключа.
14 июн 16, 14:00    [19291344]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
Nightingale
Member

Откуда:
Сообщений: 48
Ок.
А через Экспорт в файл, в нём заменить значения и снова импортировать с заменой ??
14 июн 16, 14:11    [19291384]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Nightingale
Ок.
А через Экспорт в файл, в нём заменить значения и снова импортировать с заменой ??

можно даже распечатать, исправит и вбить заново, хотя ваше решение более извращённое :)
14 июн 16, 14:16    [19291415]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
o-o,
автор
create view dbo.vw_t
as
select *
from dbo.t;

стоит наказывать за такое создание представлений :) я так понимаю пример чисто гипотетический
14 июн 16, 14:23    [19291453]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
o-o
Guest
TaPaK
o-o,
автор
create view dbo.vw_t
as
select *
from dbo.t;

стоит наказывать за такое создание представлений :) я так понимаю пример чисто гипотетический

как бы не так.
у нас одна база это просто набор представлений,
глядящих на таблицы в другой базе.
у них не хватает их овнерских прав зачейнить эти базы,
в результате права все равно выданы на все в основной базе,
зато сюрпризы в виде пересоздания колонок у нас периодически вываливаются.
юзеры фигеют, работавшие всегда фильтры падают с ошибками несовместимости типов,
тогда юзеры смотрят в ОЕ, а там типы отрисованы прежние,
ну т.е. для моего примера для числового поля показывает инт,
на самом деле там дата,
и спасибо, когда типы не совпали.
бывает же типы те, а данные вдрызг не те, вот тогда особо весело
14 июн 16, 14:48    [19291589]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4188
[quot o-o]
TaPaK
пропущено...

вот!
Глори бы еще довбавил:
"возможно. делайте"


Это был бы самый чёткий ответ на даную формулировку вопроса.
14 июн 16, 16:49    [19292374]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34705
Nightingale
Здравствуйте.

В одной таблице необходимо изменить значения первичного ключа.
Таблица не связана с другими таблицами.
Возможно ли это сделать?



нет.
15 июн 16, 11:26    [19294830]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
MasterZiv
Nightingale
Здравствуйте.

В одной таблице необходимо изменить значения первичного ключа.
Таблица не связана с другими таблицами.
Возможно ли это сделать?



нет.

ээ аргументируйте свой ответ :)
15 июн 16, 11:29    [19294842]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34705
Гы, мнения разделились...
15 июн 16, 11:29    [19294844]     Ответить | Цитировать Сообщить модератору
 Re: Изменения Значения Первичного Ключа  [new]
o-o
Guest
MasterZiv
Nightingale
Здравствуйте.

В одной таблице необходимо изменить значения первичного ключа.
Таблица не связана с другими таблицами.
Возможно ли это сделать?



нет.

он просто не верит своим глазам.
при этом репро 19290863 давно выложено, но запустить видимо сил не хватает после 12-ого
15 июн 16, 11:36    [19294869]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить