Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Insert Into (Sql2000 to Sql2008)  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
На SQL2000 писал
Insert into mytable1
select * from mytable2 where mytable2.field1 = mytable1.field1

на 2008 выходит такая вот ошибка при компиляции

Msg 4104, Level 16, State 1, Line 2
The multi-part identifier "mytable1.field1" could not be bound.

Как это теперь делается на 2008-ом ?
11 авг 11, 15:27    [11104648]     Ответить | Цитировать Сообщить модератору
 Re: Insert Into (Sql2000 to Sql2008)  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
А сделать то что надо?!
11 авг 11, 15:28    [11104670]     Ответить | Цитировать Сообщить модератору
 Re: Insert Into (Sql2000 to Sql2008)  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
надо вставить данные из одной таблицы в другую, при этом написать часть WHERE с использованием полей обеих таблиц
11 авг 11, 15:35    [11104704]     Ответить | Цитировать Сообщить модератору
 Re: Insert Into (Sql2000 to Sql2008)  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> На SQL2000 писал
>
> Insert into mytable1
> select *from mytable2where mytable2.field1 = mytable1.field1

это вы с update или delete-ом попутали. а такая конструкция и на 2000-ом ошибку выдает.

Posted via ActualForum NNTP Server 1.4

11 авг 11, 15:39    [11104736]     Ответить | Цитировать Сообщить модератору
 Re: Insert Into (Sql2000 to Sql2008)  [new]
Glory
Member

Откуда:
Сообщений: 104751
Samir
На SQL2000 писал
Insert into mytable1
select * from mytable2 where mytable2.field1 = mytable1.field1
на 2008 выходит такая вот ошибка при компиляции

На 2000м тоже ошибка при компиляции. И на 2005м. И даже на 7ке
11 авг 11, 15:40    [11104745]     Ответить | Цитировать Сообщить модератору
 Re: Insert Into (Sql2000 to Sql2008)  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Что-то Вы нам сказки какие-то рассказываете..

Insert into t1
select t1.* from mytable1 t1 INNER JOIN mytable2 t2 ON t2.field1 = t1.field1

но здается мне, что здесь нужен EXISTS.

Сообщение было отредактировано: 11 авг 11, 15:41
11 авг 11, 15:41    [11104750]     Ответить | Цитировать Сообщить модератору
 Re: Insert Into (Sql2000 to Sql2008)  [new]
iljy
Member

Откуда:
Сообщений: 8711
Samir
На SQL2000 писал
Insert into mytable1
select * from mytable2 where mytable2.field1 = mytable1.field1

на 2008 выходит такая вот ошибка при компиляции

Msg 4104, Level 16, State 1, Line 2
The multi-part identifier "mytable1.field1" could not be bound.

Как это теперь делается на 2008-ом ?

И 2000 это ел?? Врете
select @@VERSION
use tempdb
create table mytable1 (field1 int)
create table mytable2 (field1 int)
go
Insert into mytable1
select * from mytable2 where mytable2.field1 = mytable1.field1
go
drop table mytable1
drop table mytable2
-------------------------------------------------------------------------------------
Microsoft SQL Server 2000 - 8.00.2039 (Intel X86)
May 3 2005 23:18:38
Copyright (c) 1988-2003 Microsoft Corporation
Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 4)


(1 row(s) affected)

Msg 107, Level 16, State 3, Line 1
The column prefix 'mytable1' does not match with a table name or alias name used in the query.
11 авг 11, 15:41    [11104753]     Ответить | Цитировать Сообщить модератору
 Re: Insert Into (Sql2000 to Sql2008)  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
да, правильно, перепутал, извиняюсь :)

хотя компиляция на 2000 проходит
11 авг 11, 15:41    [11104755]     Ответить | Цитировать Сообщить модератору
 Re: Insert Into (Sql2000 to Sql2008)  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Samir
хотя компиляция на 2000 проходит


Не компиляция, а синтаксическая проверка.
11 авг 11, 15:42    [11104764]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить