Имя: Пароль:
IT
Админ
Как на основании файла .sql создать новые таблицы в SQL-2000 ?
0 мистер игрек
 
11.12.08
11:09
Есть такой файл *.sql, там описание таблиц и полей таблицы.
Как на основании файла .sql создать новые таблицы в SQL-2000 ?
1 smaharbA
 
11.12.08
11:10
нажать ентер
2 мистер игрек
 
11.12.08
11:10
(1) хер тебе
3 vde69
 
11.12.08
11:11
скорее всего его надо просто выполнить в консоли скуля
4 Господин ПЖ
 
11.12.08
11:11
посмотреть что в них через QA в скуле...
5 rs_trade
 
11.12.08
11:11
содержимое файла покажи
6 Mikeware
 
11.12.08
11:12
(5) truncate table ...
:-)
7 ДенисЧ
 
11.12.08
11:12
Открываем Query Editor, подключаемся к нужной базе, копипастим в окно sql-команды и запускаем (F5)
8 vde69
 
модератор
11.12.08
11:13
(2)  отдыхает 30 минут
9 rs_trade
 
11.12.08
11:13
хотя показывать не обязательно, его просто открыть надо в QA и выполнить
10 Господин ПЖ
 
11.12.08
11:16
круто запускать не зная что там...

drop database например
11 CoolCat
 
11.12.08
11:22
(10) неплохо ты создаешь таблицы :)
12 мистер игрек
 
11.12.08
11:42
(7) Creation of table 'ODS_XXARF_CUSTOMER_IF' failed because the row size would be 31766, including internal overhead. This exceeds the maximum allowable table row size, 8060.

Что за ошибка?
13 ДенисЧ
 
11.12.08
11:43
(12) Слишком большие строки таблиц создаёшь.
14 vde69
 
11.12.08
11:44
превышение максимальной длины... вообще советую вот сюда на форум www.sql.ru
15 мистер игрек
 
11.12.08
11:44
Привожу кусок файла:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[IC_PMS_GCM_ITEM_INF](
   [ORGANIZATION_CODE] [nchar](3) NOT NULL,
   [DIVISION] [nchar](150) NULL,
   [PART_NO] [nchar](40) NULL,
   [AFFILIATE_CODE] [nchar](4) NULL,
   [DESCRIPTION] [nchar](240) NULL,
   [SPECIFICATION] [nchar](240) NULL,
   [UOM] [nchar](3) NULL,
   [LOCAL_DESCRIPTION] [nchar](4000) NULL,
   [ITEM_TYPE] [nchar](30) NULL,
   [ITEM_DELIMITER] [datetime] NULL,
   [TRANSFER_FLAG] [nchar](100) NOT NULL,
   [TRANSFER_DATE] [datetime] NULL,
   [GLOBAL_UNIQUE_ID] [numeric](18, 0) NULL,
   [BAM_SEQUENCE_ID] [datetime] NULL,
   [OLD_GLOBAL_UNIQUE_ID] [numeric](18, 0) NULL,
   [CREATION_DATE] [nchar](150) NULL,
   [CREATED_BY] [nchar](150) NULL,
   [LAST_UPDATE_DATE] [nchar](150) NULL,
   [LAST_UPDATED_BY] [nchar](150) NULL,
   [ATTRIBUTE1] [nchar](150) NULL,
   [ATTRIBUTE2] [nchar](150) NULL,
   [ATTRIBUTE3] [nchar](150) NULL,
   [ATTRIBUTE4] [nchar](150) NULL,
   [ATTRIBUTE5] [nchar](150) NULL,
   [ATTRIBUTE6] [nchar](150) NULL,
   [ATTRIBUTE7] [nchar](150) NULL,
   [ATTRIBUTE8] [nchar](150) NULL,
   [ATTRIBUTE9] [nchar](150) NULL,
   [ATTRIBUTE10] [nchar](150) NULL,
   [ATTRIBUTE11] [nchar](150) NULL,
   [ATTRIBUTE12] [nchar](150) NULL,
   [ATTRIBUTE13] [nchar](150) NULL,
   [ATTRIBUTE14] [nchar](150) NULL,
   [ATTRIBUTE15] [nchar](150) NULL
) ON [PRIMARY]

Так он выдает ошибку в (12)
А если убрать последную колонку, он без проблем создает. Куда надо копат? Есть где-нить настройки, чтоб эту ошибку загасит?
16 vde69
 
11.12.08
11:47
в (12) у тебя таблица 'ODS_XXARF_CUSTOMER_IF' а пример ты вывел для 'IC_PMS_GCM_ITEM_INF'

ты-бы поконретнее
17 мистер игрек
 
11.12.08
11:48
(16) У IC_PMS_GCM_ITEM_INF тоже такая фигня
18 мистер игрек
 
11.12.08
11:49
(16)  Creation of table 'IC_PMS_GCM_ITEM_INF' failed because the row size would be 15387, including internal overhead. This exceeds the maximum allowable table row size, 8060.
19 мистер игрек
 
11.12.08
11:52
Может этот файл создан в СКЛ-2005? И там нету этих ограничений. Возможно такое?
20 vde69
 
11.12.08
11:56
думаю тебе сюда:
http://sql.ru/forum/actualtopics.aspx?bid=1

а вообще у меня есть сомнение, что это MS-SQL
и вообще к 1с это точно не относиться
21 мистер игрек
 
11.12.08
12:20
Я понял откуда ошибка. В СКЛ-2000 для каждой таблицы размер байта колонок не должно превышать 8060 байтов. В тех таблицах, где эта ошибка, она превышет. Получается в 2000-м нету возможности снять это ограничение?
22 rs_trade
 
11.12.08
12:53
(21) обратись в мелкософт с таким вопросом...
23 мистер игрек
 
11.12.08
12:56
(22) Это все равно, что плевок в вечность :)
24 Живой Ископаемый
 
11.12.08
12:59
а попробуй замени [nchar](150)  на varchar
25 Живой Ископаемый
 
11.12.08
13:00
и [nchar](4000) тоже на varchar
26 rs_trade
 
11.12.08
13:01
или раздели на две таблицы
27 мистер игрек
 
11.12.08
13:01
(24) Я с удовольствием сделал бы, но этот файл спустили сверху. Придется  молится, чтоб они (те самые) образумели и исправили свои глюки :))
28 rs_trade
 
11.12.08
13:02
например все ATTRIBUTE14 вынеси в другую таблицу
29 Живой Ископаемый
 
11.12.08
13:03
(27) Но ты попробуй... если создастся таблица, ты по-крайней мере будешь знать о чем разговаривать с теми, кто сверху... и +(26) тоже попробуй...
30 мистер игрек
 
11.12.08
13:09
(29) К сожалению не смогу. Потому что, мы филиал международной корпорации, и всем филиалам разослалы этот скрипт, т.е. эта структура таблиц стандарт-де-факто. Придется наверно купить СКЛ-2005. Надеюсь там этих ограничений нету.
31 rs_trade
 
11.12.08
13:14
Msg 1701, Level 16, State 1, Line 1
Creating or altering table 'IC_PMS_GCM_ITEM_INF' failed because the minimum row size would be 15373, including 11 bytes of internal overhead. This exceeds the maximum allowable table row size of 8060 bytes.

2005 говорит, у них может оракл вообще?
32 ДенисЧ
 
11.12.08
13:18
(30) Снимаем трубку телефона, звоним в головной отдел и задаём вопрос "Парни, что за х? Что у вас за система такая?"
33 Живой Ископаемый
 
11.12.08
13:34
вот так работает:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[IC_PMS_GCM_ITEM_INF1](
  [ORGANIZATION_CODE] [nchar](3) NOT NULL,
  [DIVISION] [nchar](150) NULL,
  [PART_NO] [nchar](40) NULL,
  [AFFILIATE_CODE] [nchar](4) NULL,
  [DESCRIPTION] [nchar](240) NULL,
  [SPECIFICATION] [nchar](240) NULL,
  [UOM] [nchar](3) NULL,
  [LOCAL_DESCRIPTION] [varchar](4000) NULL, -- Вот здесь Varchar только, врядли будет индекс по текстовому полю в 4000 символов
  [ITEM_TYPE] [nchar](30) NULL,
  [ITEM_DELIMITER] [datetime] NULL,
  [TRANSFER_FLAG] [nchar](100) NOT NULL,
  [TRANSFER_DATE] [datetime] NULL,
  [GLOBAL_UNIQUE_ID] [numeric](18, 0) NULL,
  [BAM_SEQUENCE_ID] [datetime] NULL,
  [OLD_GLOBAL_UNIQUE_ID] [numeric](18, 0) NULL,
  [CREATION_DATE] [nchar](150) NULL,
  [CREATED_BY] [nchar](150) NULL,
  [LAST_UPDATE_DATE] [nchar](150) NULL,
  [LAST_UPDATED_BY] [nchar](150) NULL,
  [ATTRIBUTE1] [nchar](150) NULL,
  [ATTRIBUTE2] [nchar](150) NULL,
  [ATTRIBUTE3] [nchar](150) NULL,
  [ATTRIBUTE4] [nchar](150) NULL,
  [ATTRIBUTE5] [nchar](150) NULL,
  [ATTRIBUTE6] [nchar](150) NULL,
  [ATTRIBUTE7] [nchar](150) NULL,
  [ATTRIBUTE8] [nchar](150) NULL,
  [ATTRIBUTE9] [nchar](150) NULL,
  [ATTRIBUTE10] [nchar](150) NULL,
  [ATTRIBUTE11] [nchar](150) NULL,
  [ATTRIBUTE12] [nchar](150) NULL,
  [ATTRIBUTE13] [nchar](150) NULL,
  [ATTRIBUTE14] [nchar](150) NULL,
  [ATTRIBUTE15] [nchar](150) NULL
) ON [PRIMARY]
34 мистер игрек
 
11.12.08
13:37
(33) Эту таблицу исправил, но в остальных таблицах муть полная. Там полей "ATTRIBUTE15n" штук 30 по 300 символов с энварчар
35 мистер игрек
 
11.12.08
13:38
(34) энварчар = nchar
36 Mikeware
 
11.12.08
13:38
и в "филиале международной корпорации" держат дятлов? грустно... Хотя, кризис...
37 rs_trade
 
11.12.08
13:39
(34) а вы как с ними инфой обмениваетесь?
38 Господин ПЖ
 
11.12.08
13:41
структуры дебильные...


[ATTRIBUTE1]
...........
[ATTRIBUTE15]

про запас?
39 мистер игрек
 
11.12.08
13:47
(36) Это так теяб затронуло? или геморой мучает?
40 мистер игрек
 
11.12.08
13:50
(37) В смысле?
(38) Хрен знает. Он так решили, это меня вобще не касается
41 Живой Ископаемый
 
11.12.08
13:52
(35) Та короче, смело меняй в них на varchar... не могу поверить чтобы по таким дебильным атрибутам шла индексация... Кстати, можно сразу глянуть - в скрипте - для каких полей строятся индексы...

Ну и +(37) - если обмениваетесь через внешние файлы, а не репликацией - то по-моему смело можно менять...
42 rs_trade
 
11.12.08
13:56
(41) угу, и менять и делить, DTS настроить тока и все путем будет...
43 мистер игрек
 
11.12.08
13:58
(41) Ладно, придется с ним провести беседу по душам. :) Я тоже про этот вариант подумал.
Всем спасибо, кроме (36) неудачника