Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Primary Key для временных таблиц.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Значит есть такой код

Сначала
if object_id('tempdb..#tbState') is not null
begin
 alter table #tbState
 drop constraint pk_tbState;

 drop table #tbState;
end;

где код
 alter table #tbState
 drop constraint pk_tbState;
был добавлен потом.

Далее
select distinct
       t.id.value('.', 'nvarchar(4)') as id
  into #tbState
  from @xmlState.nodes('/table/id') t(id);

alter table #tbState
  alter column id nvarchar(4) not null;

alter table #tbState
  add constraint pk_tbState primary key (id);

И ошибка
1) если это в ещё выполняющейся процедуре
2) если было выполнено обычным скриптом в окне SSMS вплоть до его закрытия

Msg 2714, Level 16, State 4, Procedure spCompanyGetCSV, Line 81
There is already an object named 'pk_tbState' in the database.


SQL Server 2005

Какого это?! Временные таблицы не видны, а констрейнты на них видны? Причём DROP сделать нельзя? Что делать?
4 дек 09, 15:04    [8020588]     Ответить | Цитировать Сообщить модератору
 Re: Primary Key для временных таблиц.  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Какого это?! Временные таблицы не видны, а констрейнты на них видны?

угу.

> Причём DROP сделать нельзя?

почему же, нельзя - можно.

> Что делать?

объявлять констрейнт сразу при создании таблицы. тогда, имя можно
не указывать - сервер сам назначит уникальное.

Posted via ActualForum NNTP Server 1.4

4 дек 09, 15:08    [8020635]     Ответить | Цитировать Сообщить модератору
 Re: Primary Key для временных таблиц.  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> почему же, нельзя - можно.

а, хотя да - не получится.

Posted via ActualForum NNTP Server 1.4

4 дек 09, 15:09    [8020652]     Ответить | Цитировать Сообщить модератору
 Re: Primary Key для временных таблиц.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
вот же отстой... их же у меня тут как грязи :(

Спасибо за ответ!
4 дек 09, 15:09    [8020656]     Ответить | Цитировать Сообщить модератору
 Re: Primary Key для временных таблиц.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
NIIIK
вот же отстой... их же у меня тут как грязи :(


Дальше ждем вопросов по поводу ошибки:

Invalid column name id.
4 дек 09, 15:11    [8020674]     Ответить | Цитировать Сообщить модератору
 Re: Primary Key для временных таблиц.  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
NIIIK,

зато можно во временных таблицах создавать уникальные индексы с нормальными именами.
Собственно говоря, зачем он сдался-то, PRIMARY KEY, во временной таблице?
4 дек 09, 15:21    [8020810]     Ответить | Цитировать Сообщить модератору
 Re: Primary Key для временных таблиц.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
pkarklin
NIIIK
вот же отстой... их же у меня тут как грязи :(


Дальше ждем вопросов по поводу ошибки:

Invalid column name id.

Вы про что?
4 дек 09, 15:29    [8020875]     Ответить | Цитировать Сообщить модератору
 Re: Primary Key для временных таблиц.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
iap
NIIIK,

зато можно во временных таблицах создавать уникальные индексы с нормальными именами.
Собственно говоря, зачем он сдался-то, PRIMARY KEY, во временной таблице?


Ну потому что он должен быть ПК, тем более мне так нравится кластерный индекс создавать, надеюсь он во временных таблицах так же создаётся.
4 дек 09, 15:31    [8020883]     Ответить | Цитировать Сообщить модератору
 Re: Primary Key для временных таблиц.  [new]
Павел-П
Guest
Очень бы хотелось задать тогда вопрос сообществу. А вы индексируете временные таблицы. Если да, то в каких случаях и зачем???
4 дек 09, 15:41    [8020974]     Ответить | Цитировать Сообщить модератору
 Re: Primary Key для временных таблиц.  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
NIIIK
iap
NIIIK,

зато можно во временных таблицах создавать уникальные индексы с нормальными именами.
Собственно говоря, зачем он сдался-то, PRIMARY KEY, во временной таблице?


Ну потому что он должен быть ПК, тем более мне так нравится кластерный индекс создавать, надеюсь он во временных таблицах так же создаётся.
От слов "PRIMARY KEY" это не зависит.
Уникальный кластерный индекс ничем не хуже, тем более он всё равно создаётся одновременно с кластерным PRIMARY KEY.
Разве что в нём поля IS NULL возможны, но это лечится в соответствующих полях с помощью NOT NULL.
4 дек 09, 15:41    [8020975]     Ответить | Цитировать Сообщить модератору
 Re: Primary Key для временных таблиц.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Я остановился на варианте, предложенном daw.
4 дек 09, 16:23    [8021287]     Ответить | Цитировать Сообщить модератору
 Re: Primary Key для временных таблиц.  [new]
step_ks
Member

Откуда:
Сообщений: 936
Павел-П
Очень бы хотелось задать тогда вопрос сообществу. А вы индексируете временные таблицы. Если да, то в каких случаях и зачем???

Для оптимизации запросов, когда это существенно.
4 дек 09, 22:28    [8022835]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить