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

Откуда: г. Калуга
Сообщений: 1213
Пример из BOL. Объясните, как это работает! Я тут вижу два разных запроса. У меня и выполняются как два разных на 2008
-- Transact-SQL extension
USE AdventureWorks2008R2;
GO
DELETE FROM Sales.SalesPersonQuotaHistory 
SELECT * FROM Sales.SalesPersonQuotaHistory AS spqh
    INNER JOIN Sales.SalesPerson AS sp
    ON spqh.BusinessEntityID = sp.BusinessEntityID
WHERE sp.SalesYTD > 2500000.00;
GO

аналог этого вот
-- SQL-2003 Standard subquery

USE AdventureWorks2008R2;
GO
DELETE FROM Sales.SalesPersonQuotaHistory 
WHERE BusinessEntityID IN 
    (SELECT BusinessEntityID 
     FROM Sales.SalesPerson 
     WHERE SalesYTD > 2500000.00);
GO

18 окт 11, 11:26    [11457434]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
iljy
Member

Откуда:
Сообщений: 8711
minva,

естественно, потому что в первом варианте у вас 2 запроса, первый чистит таблицу, а второй после этого выводит пустое множество.
18 окт 11, 11:28    [11457443]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
а ссылку можно, где такое написано?
18 окт 11, 11:31    [11457474]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
iljy
minva,

естественно, потому что в первом варианте у вас 2 запроса, первый чистит таблицу, а второй после этого выводит пустое множество.


но ведь кто-то дописал "аналог этого вот" ? или это автор темы?
18 окт 11, 11:32    [11457486]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1213
Winnipuh,

BOL русский
ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.ru/s10de_6tsql/html/ed6b2105-0f35-408f-ba51-e36ade7ad5b2.htm

если проще, то справку по иснтрукции DELETE почитайте, в частности пример: "Использование инструкции DELETE на основе вложенного запроса и с помощью расширения языка Transact-SQL"
18 окт 11, 11:34    [11457499]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
iljy
Member

Откуда:
Сообщений: 8711
minva,

вот и почитайте, только внимательно
18 окт 11, 11:40    [11457557]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1213
iljy,

да не вопрос, почитал три раза.. ткните в буквы, которые я пропустил. Без иронии, реально не вижу!
18 окт 11, 11:42    [11457584]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
minva
Winnipuh,

BOL русский
ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.ru/s10de_6tsql/html/ed6b2105-0f35-408f-ba51-e36ade7ad5b2.htm

если проще, то справку по иснтрукции DELETE почитайте, в частности пример: "Использование инструкции DELETE на основе вложенного запроса и с помощью расширения языка Transact-SQL"


не нашел таких примеров, можно в интернете ссылку...

вот тут нету
http://msdn.microsoft.com/ru-ru/library/ms189835.aspx
18 окт 11, 11:47    [11457663]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
qwerty777
Member

Откуда:
Сообщений: 158
-- Transact-SQL extension
USE AdventureWorks2008R2;
GO
DELETE FROM Sales.SalesPersonQuotaHistory
FROM Sales.SalesPersonQuotaHistory AS spqh

INNER JOIN Sales.SalesPerson AS sp
ON spqh.BusinessEntityID = sp.BusinessEntityID
WHERE sp.SalesYTD > 2500000.00;

GO
18 окт 11, 11:47    [11457665]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
minva
Winnipuh,

BOL русский
ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.ru/s10de_6tsql/html/ed6b2105-0f35-408f-ba51-e36ade7ad5b2.htm

если проще, то справку по иснтрукции DELETE почитайте, в частности пример: "Использование инструкции DELETE на основе вложенного запроса и с помощью расширения языка Transact-SQL"


такое есть. но оно ведь тличается от того, что вы привели в первом сообщении

Transact-SQL
-- SQL-2003 Standard subquery

USE AdventureWorks2008R2;
GO
DELETE FROM Sales.SalesPersonQuotaHistory 
WHERE BusinessEntityID IN 
    (SELECT BusinessEntityID 
     FROM Sales.SalesPerson 
     WHERE SalesYTD > 2500000.00);
GO


Transact-SQL
-- Transact-SQL extension
USE AdventureWorks2008R2;
GO
DELETE FROM Sales.SalesPersonQuotaHistory 
FROM Sales.SalesPersonQuotaHistory AS spqh
INNER JOIN Sales.SalesPerson AS sp
ON spqh.BusinessEntityID = sp.BusinessEntityID
WHERE sp.SalesYTD > 2500000.00;

GO
18 окт 11, 11:48    [11457683]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
ай-яй-яй.. ваши фантазии сбивают с толку. Еще и надпись "аналог"... я уже думал начинать расставлять везде ;

18 окт 11, 11:50    [11457701]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
iljy
Member

Откуда:
Сообщений: 8711
minva,

не пропустили, а от себя добавили. SELECT *.
18 окт 11, 11:53    [11457749]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1213
Winnipuh,

Я же не ручками это писал, а скопипастил
Всё вопрос снят, это косяк в русcком BOL
18 окт 11, 11:54    [11457771]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
minva
Winnipuh,

Я же не ручками это писал, а скопипастил
Всё вопрос снят, это косяк в русcком BOL


хмм... слабо верится...
вот здесь нету такого как у вас

http://msdn.microsoft.com/ru-ru/library/ms189835.aspx
18 окт 11, 11:55    [11457795]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1213
Winnipuh,

не вопрс, скриншот
http://clip2net.com/s/1ftHZ
18 окт 11, 11:57    [11457829]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
я не прав, извините, ТС прав, вот что в БОЛе
что ж это творицца... если это так, то могут посыпаться коды


The following example shows the Transact-SQL extension used to delete records from a base table that is based on a join or correlated subquery. The first DELETE statement shows the ISO-compatible subquery solution, and the second DELETE statement shows the Transact-SQL extension. Both queries remove rows from the SalesPersonQuotaHistory table based on the year-to-date sales stored in the SalesPerson table.

Copy Code
-- SQL-2003 Standard subquery

USE AdventureWorks2008R2;
GO
DELETE FROM Sales.SalesPersonQuotaHistory 
WHERE BusinessEntityID IN 
    (SELECT BusinessEntityID 
     FROM Sales.SalesPerson 
     WHERE SalesYTD > 2500000.00);
GO

 
 Copy Code 
-- Transact-SQL extension
USE AdventureWorks2008R2;
GO
DELETE FROM Sales.SalesPersonQuotaHistory 
SELECT * FROM Sales.SalesPersonQuotaHistory AS spqh
    INNER JOIN Sales.SalesPerson AS sp
    ON spqh.BusinessEntityID = sp.BusinessEntityID
WHERE sp.SalesYTD > 2500000.00;
GO
18 окт 11, 11:58    [11457844]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
SignOff
Member

Откуда: Stockholm
Сообщений: 424
Winnipuh,

я в т-скл новичек, а вот код:

-- Transact-SQL extension
USE AdventureWorks2008R2;
GO
DELETE FROM spqh
SELECT * FROM Sales.SalesPersonQuotaHistory AS spqh
    INNER JOIN Sales.SalesPerson AS sp
    ON spqh.BusinessEntityID = sp.BusinessEntityID
WHERE sp.SalesYTD > 2500000.00;


арбайтен ?
18 окт 11, 13:23    [11458796]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
iljy
Member

Откуда:
Сообщений: 8711
SignOff,

11457443
18 окт 11, 13:27    [11458838]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
SignOff
Winnipuh,

я в т-скл новичек, а вот код:

-- Transact-SQL extension
USE AdventureWorks2008R2;
GO
DELETE FROM spqh
SELECT * FROM Sales.SalesPersonQuotaHistory AS spqh
    INNER JOIN Sales.SalesPerson AS sp
    ON spqh.BusinessEntityID = sp.BusinessEntityID
WHERE sp.SalesYTD > 2500000.00;


арбайтен ?
Где вы все эту хрень нашли? Вот что в БОЛ:
Г. Использование инструкции DELETE на основе вложенного запроса и с помощью расширения языка Transact-SQL

-- SQL-2003 Standard subquery

USE AdventureWorks2008R2;
GO
DELETE FROM Sales.SalesPersonQuotaHistory 
WHERE BusinessEntityID IN 
    (SELECT BusinessEntityID 
     FROM Sales.SalesPerson 
     WHERE SalesYTD > 2500000.00);
GO

-- Transact-SQL extension
USE AdventureWorks2008R2;
GO
DELETE FROM Sales.SalesPersonQuotaHistory 
FROM Sales.SalesPersonQuotaHistory AS spqh
INNER JOIN Sales.SalesPerson AS sp
ON spqh.BusinessEntityID = sp.BusinessEntityID
WHERE sp.SalesYTD > 2500000.00;

GO

18 окт 11, 13:30    [11458863]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
SignOff,

если есть таблица spqh ну и все остальные, то будет работать (правда, видимо не так как ожидалось=).
18 окт 11, 13:32    [11458883]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
minva
Winnipuh,

не вопрс, скриншот
http://clip2net.com/s/1ftHZ
Виидмо, это было в какой то бета-версии справки...
Лучьше пользуйтесь инет-версией хелпа от МС или ещё лучьше установите локальный хелп.
18 окт 11, 13:39    [11458945]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
alexeyvg
minva
Winnipuh,

не вопрс, скриншот
http://clip2net.com/s/1ftHZ
Виидмо, это было в какой то бета-версии справки...
Лучьше пользуйтесь инет-версией хелпа от МС или ещё лучьше установите локальный хелп.


ну вот я и взял из локальной версии БОЛ
18 окт 11, 13:44    [11459015]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Winnipuh
alexeyvg
пропущено...
Виидмо, это было в какой то бета-версии справки...
Лучьше пользуйтесь инет-версией хелпа от МС или ещё лучьше установите локальный хелп.


ну вот я и взял из локальной версии БОЛ
Да, странно...
У меня тоже 2008R2 и примеры правильные
18 окт 11, 14:00    [11459198]     Ответить | Цитировать Сообщить модератору
 Re: Удаление множества записей  [new]
SignOff
Member

Откуда: Stockholm
Сообщений: 424
alexeyvg,

Microsoft SQL Server 2008 (SP2) - 10.0.4000.0 (X64)

к нему БОЛС - который тоже с абшибкой идет

А вот и ваш R2D2 вершен:

http://msdn.microsoft.com/en-us/library/ms189835.aspx
18 окт 11, 14:15    [11459378]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить