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

Откуда:
Сообщений: 25
Добрый вечер!
Вообщем хочу узнать как можно обойти PRIMARY KEY, нужно вставить таблицу из одной базы в другую,причем обе таблицы заполнены. Проблема в том что заменять нужно и ключевые поля, вот такой запрос я составил :

INSERT INTO bd1.dbo.table
Select *
From bd2.dbo.table


Скажу сразу INSERT IGNORE INTO почему то не работает пишет:
Incorrect sintax near the keyword ' INTO'.

Подскажите пожалуйста.
25 окт 12, 22:46    [13377066]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
O
Guest
vayt, поставь сначала SET IDENTITY OFF
25 окт 12, 22:59    [13377110]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
vayt
INSERT IGNORE INTO

А вы такую конструкцию в INSERT нашли ?
26 окт 12, 01:50    [13377633]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8724
Maxx
vayt
INSERT IGNORE INTO

А вы такую конструкцию в INSERT нашли ?

Это MySQL, кажется...
26 окт 12, 02:05    [13377659]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
Bryk_Alien
Guest
vayt
заменять нужно и ключевые поля
Если ключевые поля нужно именно "заменять", может, стоит использовать UPDATE?
26 окт 12, 09:36    [13378358]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
vayt
Member

Откуда:
Сообщений: 25
А он не будет ругаться на update ? Вечером попробую
26 окт 12, 10:12    [13378569]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
Exproment
Member

Откуда:
Сообщений: 416
vayt,
SET IDENTITY OFF
INSERT  INTO bd1.dbo.table
Select  *
From    bd2.dbo.table
SET IDENTITY ON

Problems ?

PS: вы очень зря не перечисляете поля в селекте и инсерте... это очень плохая практика и когда нибудь вы за это очень поплатитесь.
26 окт 12, 10:20    [13378604]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
vayt
Member

Откуда:
Сообщений: 25
Очень легко объяснимо моя халатность , мне нужно копировать 200 таблиц , поэтому терять время на перечислением столбов нет , тем более они одинаковые !
26 окт 12, 10:29    [13378633]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
Exproment
vayt,
SET IDENTITY OFF
INSERT  INTO bd1.dbo.table
Select  *
From    bd2.dbo.table
SET IDENTITY ON

Problems ?
Что это?? Откуда это? MSSQL? Не может быть!

А идея вставить дубли в PRIMARY KEY глупа изначально
26 окт 12, 10:30    [13378639]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
vayt
Member

Откуда:
Сообщений: 25
Она не глупа , а необходима.
26 окт 12, 10:31    [13378646]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
vayt
Member

Откуда:
Сообщений: 25
iap
Exproment
vayt,
SET IDENTITY OFF
INSERT  INTO bd1.dbo.table
Select  *
From    bd2.dbo.table
SET IDENTITY ON

Problems ?
Что это?? Откуда это? MSSQL? Не может быть!

А идея вставить дубли в PRIMARY KEY глупа изначально


А что ты можешь предложить. ?
26 окт 12, 10:37    [13378677]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5133
iap
А идея вставить дубли в PRIMARY KEY глупа изначально

Полностью согласен.
SET IDENTITY_INSERT table OFF

раз уж так


Опишите полностью задачу, уверен, есть альтернативное решение.
26 окт 12, 10:41    [13378695]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
vayt
iap
пропущено...
Что это?? Откуда это? MSSQL? Не может быть!

А идея вставить дубли в PRIMARY KEY глупа изначально


А что ты можешь предложить. ?
Пока не будет названа версия сервера (PRINT @@VERSION), не рассказано о задаче
(например, что там с FK в других таблицах? Тоже переносятся?), ничего предложить невозможно.
Нужна также структура таблиц в форме CREATE TABLE ...
26 окт 12, 10:42    [13378702]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
vayt
Member

Откуда:
Сообщений: 25
SQL 2000, по таблицам пока сказать не могу , не на месте. Насчет задачи , проблема в том что упала бы на кассе , после восстановления касса ее не принимает , хочу пере бросить данные что нам нужны из одной базы в другую рабочую.
26 окт 12, 10:45    [13378718]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
vayt
SQL 2000, по таблицам пока сказать не могу , не на месте. Насчет задачи , проблема в том что упала бы на кассе , после восстановления касса ее не принимает , хочу пере бросить данные что нам нужны из одной базы в другую рабочую.
Ну что, одну таблицу перебрасываете что ли?
Или и ссылающиеся на эту таблицу тоже?
Однозначно, перенесённые данные должны получить новые значения PK.
Вопрос в том, как (и надо ли) на новом месте восстановить связи FK -> PK
26 окт 12, 10:52    [13378764]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
vayt
Member

Откуда:
Сообщений: 25
Нужно , потому что таблицы связанные и данные разные.
26 окт 12, 10:55    [13378784]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
vayt
Member

Откуда:
Сообщений: 25
А вот есть вариант , нужно сделать так чтобы выставлять только те данные которых в таблице нет , все дошло. ))
26 окт 12, 10:58    [13378805]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34619
vayt,

Удали первичный ключ, залей данные, нормализуй данные, создай первичный ключ.
В общем, все.
26 окт 12, 12:04    [13379234]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
vayt
Member

Откуда:
Сообщений: 25
MasterZiv
vayt,

Удали первичный ключ, залей данные, нормализуй данные, создай первичный ключ.
В общем, все.


Хмм это действительно просто где у меня 4130023 данных в одной таблице , слушай как я не додумался об этом раньше ?
26 окт 12, 15:16    [13380860]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
vayt
Member

Откуда:
Сообщений: 25
iap
vayt
пропущено...


А что ты можешь предложить. ?
Пока не будет названа версия сервера (PRINT @@VERSION), не рассказано о задаче
(например, что там с FK в других таблицах? Тоже переносятся?), ничего предложить невозможно.
Нужна также структура таблиц в форме CREATE TABLE ...


SQL server 2000 - 8.00-194

Пример одной таблицы:
CRATE TABLE [ActionRight] ([id] [PrimaryKey] NOT NULL,
                   [RightSetID] [PrimaryKey] NOT NULL,
                   [Name] [Name] NOT NULL,
                   [RightBit] [int] NOT NULL,
                   CONSTAINT [PK_ACTIORIGHT] PRIMARY KEY CLUSTERED
                   (
                          [ID]
                    ) ON [PRIMARY],
                   CONSTAINT [FK_ACTIONRI_RIGHTSET2_RIGHTSEE] FOREIGN KEY 
                   (
                          [RightSetID]
                    ) REFERENCES [RightSet] ( 
                                    [ID]
                    ) 
)ON [PRIMARY]
GO


Задача поменялась , нужно переместить только то чего нехватает в таблице , как я понимаю добавляем WHERE ?
26 окт 12, 15:35    [13381030]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
vayt
iap
пропущено...
Пока не будет названа версия сервера (PRINT @@VERSION), не рассказано о задаче
(например, что там с FK в других таблицах? Тоже переносятся?), ничего предложить невозможно.
Нужна также структура таблиц в форме CREATE TABLE ...


SQL server 2000 - 8.00-194

Пример одной таблицы:
CRATE TABLE [ActionRight] ([id] [PrimaryKey] NOT NULL,
                   [RightSetID] [PrimaryKey] NOT NULL,
                   [Name] [Name] NOT NULL,
                   [RightBit] [int] NOT NULL,
                   CONSTAINT [PK_ACTIORIGHT] PRIMARY KEY CLUSTERED
                   (
                          [ID]
                    ) ON [PRIMARY],
                   CONSTAINT [FK_ACTIONRI_RIGHTSET2_RIGHTSEE] FOREIGN KEY 
                   (
                          [RightSetID]
                    ) REFERENCES [RightSet] ( 
                                    [ID]
                    ) 
)ON [PRIMARY]
GO


Задача поменялась , нужно переместить только то чего нехватает в таблице , как я понимаю добавляем WHERE ?
Что такое [PrimaryKey]?
Тип что ли такой пользовательский?
Вот уж совсем ни к чему... Впрочем, если Вам нравится...
26 окт 12, 15:41    [13381062]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
vayt
Задача поменялась , нужно переместить только то чего нехватает в таблице , как я понимаю добавляем WHERE ?
WHERE NOT EXISTS(SELECT * FROM ...)
26 окт 12, 15:43    [13381081]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
vayt
Member

Откуда:
Сообщений: 25
iap
vayt
Задача поменялась , нужно переместить только то чего нехватает в таблице , как я понимаю добавляем WHERE ?
WHERE NOT EXISTS(SELECT * FROM ...)


А как это реализовать с INSERT INTO ?
26 окт 12, 15:49    [13381134]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
vayt
iap
пропущено...
WHERE NOT EXISTS(SELECT * FROM ...)


А как это реализовать с INSERT INTO ?
INSERT [ИмяТаблицы](<СписокПолей>)
SELECT <СписокПолей>
FROM [ИмяИсточника] JOIN ... ON ... JOIN ... ON ...
WHERE ... AND NOT EXISTS(SELECT * FROM ... WHERE ...);
Приблизительно как-то так
26 окт 12, 16:00    [13381243]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
vayt
Member

Откуда:
Сообщений: 25
Что то не выходит , пишу запрос такого рода, чувствую что написал хрень )

INSERT INTO bd1.dbo.table1
SELECT *
FROM bd2.dbo.table1
WHERE NOT EXISTS (Select * FROM dbo.teble1) 
26 окт 12, 16:28    [13381454]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить