powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нужна помощь разбитие таблицы на две с последующим присвоением id
8 сообщений из 8, страница 1 из 1
Нужна помощь разбитие таблицы на две с последующим присвоением id
    #39672379
linker_2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MS SQL 2012
Необходимо разбить существующую таблицу с данными на две и связать по ключевым полям.
Делал это несколькими способами:
1. Создавал таблицу в существующей БД вручную соответственно типы полей совпадают
и затем
INSERT INTO Table2 (a1,a2,a3,a4)
SELECT DISTINCT a1,a2,a3,a4
FROM Table1
WHERE Table1.a1 IS NOT NULL

2.
SELECT DISTINCT a1,a2,a3,a4
INTO Table2
from Table1

затем

UPDATE Table1
SET Table1.ID_a=Table2.ID_a
FROM Book JOIN Table2
ON (Table1.[a1] = Table2.[a1]) AND (Table1.[a2] = Table2.[a2])
AND (Table1.[a3] = Table2.[a3]) AND (Table1.[a4] = Table2.[a4])


Проблема в том, что если после ON только два сравнения (Table1.[a1] = Table2.[a1]) AND (Table1.[a2] = Table2.[a2]), всё ок всем записям соотвествуют ID, а если четыре то не всем.. в чём может быть косяк? Значения с пробелами, но на сколько я знаю пробелы при сравнении в начале и в конце не учитываются, это даже если они обрезаются при переносе... Пробовал без DISTINCT тоже самое
...
Рейтинг: 0 / 0
Нужна помощь разбитие таблицы на две с последующим присвоением id
    #39672384
linker_2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл написать.. значения есть и NULL.. при сравнении значения некоторых полей встречается NULL, возвращается false и соответственно id не присваивается.. бред?
...
Рейтинг: 0 / 0
Нужна помощь разбитие таблицы на две с последующим присвоением id
    #39672385
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
linker_2004,

NULL в значениях, collation полей
...
Рейтинг: 0 / 0
Нужна помощь разбитие таблицы на две с последующим присвоением id
    #39672396
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
UPDATE Table1
SET Table1.ID_a=Table2.ID_a
FROM Book JOIN Table2
ON (Table1.[a1] = Table2.[a1]) AND (Table1.[a2] = Table2.[a2])
AND exists( select Table1.[a3], Table1.[a4] intersect select Table2.[a3], Table2.[a4] )
...
Рейтинг: 0 / 0
Нужна помощь разбитие таблицы на две с последующим присвоением id
    #39672405
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
linker_2004,

Может сделать проще, сделать копию таблицы
Код: sql
1.
select ... INTO CopyTable1 FROM Table1


а потом удалить часть данных из первой и другую часть из второй ?
...
Рейтинг: 0 / 0
Нужна помощь разбитие таблицы на две с последующим присвоением id
    #39672425
linker_2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем кто откликнулся
aleks222
Код: sql
1.
2.
3.
4.
5.
UPDATE Table1
SET Table1.ID_a=Table2.ID_a
FROM Book JOIN Table2
ON (Table1.[a1] = Table2.[a1]) AND (Table1.[a2] = Table2.[a2])
AND exists( select Table1.[a3], Table1.[a4] intersect select Table2.[a3], Table2.[a4] )


красивый вариант, решил так и сделать не всё понял но буду разбираться с intersect в подзапросе ) Спасибо
...
Рейтинг: 0 / 0
Нужна помощь разбитие таблицы на две с последующим присвоением id
    #39672426
linker_2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iiyama, думал и так.. можно было бы и NULL в значениях победить на время заполнив массив тем же 0..
...
Рейтинг: 0 / 0
Нужна помощь разбитие таблицы на две с последующим присвоением id
    #39672821
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед Update'ом:
Код: sql
1.
SET ANSI_NULLS Off
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нужна помощь разбитие таблицы на две с последующим присвоением id
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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