Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Primary key in temp. tables / 3 сообщений из 3, страница 1 из 1
19.06.2002, 14:00:30
    #32033188
Dima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Primary key in temp. tables
Hello!

I have the follows problem: A stored procedure creates a temporary table with primary key constraint

CREATE PROCEDURE A
AS
BEGIN
CREATE TABLE #A
(
ID INTEGER
)
ALTER TABLE #A
ADD CONSTRAINT
A_ID_PK PRIMARY KEY (ID)
END

If various connections run this stored procedure at the same time, i get the error message like "A primary key constraint A_ID_PK already exists!"

Is it possible to create a TEMPORARY primary key constraint within a temp. stored procedure?

Thanks in advance!

P.S. An answer in russian is welcome :)
...
Рейтинг: 0 / 0
19.06.2002, 14:26:19
    #32033190
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Primary key in temp. tables
Constraint-ы - это равноправные объекты базы, поэтому имя у каждого Constraint-а должно быть уникальным в рамках базы.

Либо генерируйте это имя для каждого коннекта, например

exec('ALTER TABLE #A ADD CONSTRAINT A_ID_PK_' + CAST(@@SPID AS varchar) + ' PRIMARY KEY (ID) )

Либо позвольте это серверу делать за вас

CREATE PROCEDURE A
AS
BEGIN
CREATE TABLE #A
(
ID INTEGER PRIMARY KEY
)
END
...
Рейтинг: 0 / 0
19.06.2002, 14:27:45
    #32033191
Slava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Primary key in temp. tables
Может так
declare @tmp table(id int primary key, f int)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Primary key in temp. tables / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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