powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PD. ПК и Ignore_dup_key при генерации для MS SQL
7 сообщений из 7, страница 1 из 1
PD. ПК и Ignore_dup_key при генерации для MS SQL
    #36512731
TERn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю PDM в PD v.15.1.0.2850.
DBMS - MS SQL Server 2005 Standart

Хочу в таблице иметь индекс по столбцам ПК с опцией Ignore_dup_key=on.
Создал в PD индекс с именем, совпадающим с тем, который MSSQL генерит для автоматически создаваемого уникального индекса по столбцам ПК. только PD может генерить или ПК или индекс по ПК, вместе нельзя.

хотелось бы в скрипте PD видеть примерно следующее:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE [dbo].[B2](
	[T] [varchar]( 8 ) NOT NULL,
	[NAME] [varchar]( 255 ) NULL,
 CONSTRAINT [PK_B2] PRIMARY KEY CLUSTERED 
(
	[T] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

пробовал сначала создать таблицу вместе с ПК, выключив индекс в настройках генерации. Потом выключить ПК и таблицу, включить только генерацию индексов. но в скрипте остаются drop/create table, хотя при генерации указал use alter statements when possible .
т.е. во втором заходе генерации хотелось бы видеть только:
Код: plaintext
1.
2.
3.
4.
5.
ALTER INDEX PK_B2 ON
    dbo.B2
SET (
    IGNORE_DUP_KEY = ON,
    ) ;

Как быть?
...
Рейтинг: 0 / 0
PD. ПК и Ignore_dup_key при генерации для MS SQL
    #36513051
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TERnтолько PD может генерить или ПК или индекс по ПК, вместе нельзя.
У меня получается в скрипте на создание выводить и индекс, и первичный ключ, если создавать их после таблицы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create table B2 (
   T                    varchar( 8 )           not null,
   NAME                 varchar( 255 )         null
)
go

create index PK_B2 on B2 (
T ASC
)
go

alter table B2
   add constraint PK_B2 primary key (T)
go
КАк работает MS SQL в даном случае - он подхватит требуемый индекс? Т.е. дальше чего проще добиваться: дополнять параметрами ключ или индекс?
...
Рейтинг: 0 / 0
PD. ПК и Ignore_dup_key при генерации для MS SQL
    #36513144
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis PopovКАк работает MS SQL в даном случае - он подхватит требуемый индекс? Т.е. дальше чего проще добиваться: дополнять параметрами ключ или индекс?Нет, сервер ругнётся, что интекс PK_B2 уже существует.

Кроме того, ваш индекс не подойдёт для ПК, так что подхватить он его точно не сможет.
...
Рейтинг: 0 / 0
PD. ПК и Ignore_dup_key при генерации для MS SQL
    #36513426
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 11.03.2010 9:40, alexeyvg wrote:

> Нет, сервер ругнётся, что интекс PK_B2 уже существует.
>
> Кроме того, ваш индекс не подойдёт для ПК, так что подхватить он его
> точно не сможет.

А можно его уговорить использовать существующий индекс? Или все-таки надо сразу создавать первичный ключ с требуемыми
свойствами?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
PD. ПК и Ignore_dup_key при генерации для MS SQL
    #36513887
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis PopovА можно его уговорить использовать существующий индекс? Или все-таки надо сразу создавать первичный ключ с требуемыми
свойствами?
ИМХО, нельзя.
...
Рейтинг: 0 / 0
PD. ПК и Ignore_dup_key при генерации для MS SQL
    #36513954
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. в результате надо добиться такой команды в скрипте?

Код: plaintext
alter table B2 add constraint PK_B2 primary key (T) clustered with (ignore_dup_key=on)
...
Рейтинг: 0 / 0
PD. ПК и Ignore_dup_key при генерации для MS SQL
    #36514329
TERn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis Popov,

Вроде разобрался

добавил в Default DBMS Properties в options первичного ключа
строчку ignore_dup_key=%s : list=on|off

потом в Default Phisical options добавил ко всем pk эту строчку со значением on . Только не понял, как сделать так, чтобы даже при одной записи после with ставились скобки.
пришлось во все пк добавить fillfactor=100 , чтобы не возникало ошибки.

при генерации получился такой скрипт:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create table dbo.B2 (
   T                    varchar( 8 )           collate Cyrillic_General_CI_AS not null,
   NAME                 varchar( 255 )         collate Cyrillic_General_CI_AS null,
)
on "PRIMARY"
go
alter table dbo.B2
   add constraint PK_B2 primary key (T)
      with
(
    fillfactor=  100 ,
    ignore_dup_key= on
)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PD. ПК и Ignore_dup_key при генерации для MS SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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