Удалить заявление о присоединении - PullRequest
3 голосов
/ 01 февраля 2012

Я пытаюсь использовать оператор «Удалить» в своей хранимой процедуре, но он выдает ошибку «1001 *»

Неверное имя объекта "BRWSQLDC".

и ниже - мое заявление об удалении:

set @Query = 'DELETE FROM ' + @DestLinkServer + ' FROM .HL2_61.dbo.ArtPDF AP JOIN .HL2_61.dbo.Article A on A.ArticleID = AP.ArticleID ' + ' WHERE ArticleKey = ' + CONVERT(VARCHAR, @Id)

Когда я выполняю это как показано ниже

DELETE FROM BRWSQLDC FROM .HL2_61.dbo.ArticlePDF AP JOIN .HL2_61.dbo.Article A on A.ArticleID = AP.ArticleID  WHERE ArticleKey = -1591276581

Ошибка: недопустимое имя объекта 'BRWSQLDC'.

И если я попытаюсь выполнить код, как показано ниже:

'DELETE FROM ' + @DestLinkServer + ' .HL2_61.dbo.ArticlePDF AP JOIN .HL2_61.dbo.Article A on A.ArticleID = AP.ArticleID ' + ' WHERE ArticleKey = ' + CONVERT(VARCHAR, @Id)

при передаче значений,

DELETE FROM BRWSQLDC .HL2_61.dbo.ArticlePDF AP JOIN .HL2_61.dbo.Article A on A.ArticleID = AP.ArticleID  WHERE ArticleKey = -1591276581

ошибка, которую я получаю:

Неверный синтаксис рядом с 'AP'.

Пожалуйста, помогите мне, как объединить 2 таблицы в деле удаления, а затем удалить это на сервере, если оно существует.

Ответы [ 3 ]

4 голосов
/ 01 февраля 2012

Вам не нужно объединение, а правильное предложение WHERE.

3 голосов
/ 01 февраля 2012

Переместите ваш псевдоним после удаления, но вы также должны указать таблицу, из которой ArticleKey происходит

DELETE AP
FROM BRWSQLDC.HL2_61.dbo.ArticlePDF AP 
JOIN BRWSQLDC.HL2_61.dbo.Article A   -- preface this with your server name for clarity
    ON A.ArticleID = AP.ArticleID  
WHERE A.ArticleKey = -1591276581 
1 голос
/ 01 февраля 2012

Когда вы используете объединение, вы должны указать, из какой таблицы вы хотите удалить строки:

DELETE dbo.Customer
FROM dbo.Customer cust INNER JOIN dbo.Person pers ON pers.ID_CUST = cust.ID_CUST
...