2010-11-02 25 views
5
SELECT SKU 
FROM PartProductSupplemental 
EXCEPT 
SELECT SKU 
FROM Inventory 

¿Por qué aparece este error:¿Por qué EXCEPT no funciona? Sintaxis incorrecta cerca de la palabra Excepto

Incorrect Syntax near the Word Except

puedo comprobar en línea y la sintaxis es sintácticamente correcta:

SELECT ProductID 
FROM Production.WorkOrder 
EXCEPT 
SELECT ProductID 
FROM Production.Product 
+0

Intenta ponerlo en una línea, puede que sea un espacio en blanco que falta. – Goblin

+0

Sé que esto está marcado correctamente, pero en el futuro usar SQL 08 como título podría hacer que la gente piense que está hablando de un estándar ANSI cuando solo lee el título frente a un producto de Microsoft. El título más razonable cambiaría SQL 08 sería Microsoft SQL Server 2008. Picky lo sé :). – Kuberchaun

Respuesta

8

Su modo de compatibilidad de base de datos probablemente esté configurado en 2000 (80) o anterior.

En Management Studio:

  1. haga clic derecho en el nombre de base de datos en la sección "Bases de datos" la partida en el Explorador de objetos
  2. En la ventana Propiedades que aparece, seleccione "Opciones" - del nivel de compatibilidad es tercero desde arriba, a la derecha.
+2

Debería funcionar en 2005. http://msdn.microsoft.com/en-us/library/ms188055%28v=SQL.90%29.aspx –

+0

nivel de compatibilidad es SQL Server 2008 (80) – bizness

+0

@bizness: 80 es * 2000 *; 100 significa ** 2008 ** –

0

intentar usar distinta y menos sólo para probar .

Excepto que debería haber funcionado tan bien, ¿son los campos del mismo tipo?

(funciona también en 2005, según la documentación y no necesita() en la segunda frase).

+1

MINUS es la sintaxis de Oracle –

+0

Yope varchar 16's – bizness

0

Cuando ejecute el siguiente funciona bien:

with PartProductSupplemental as 
(
    SELECT 1 sku 
    UNION 
    select 2 
    UNION 
    SELECT 3 
    UNION 
    select 4 
    UNION 
    SELECT 5 
), 
Inventory as 
(
    SELECT 1 sku 
    UNION 
    select 2 
    UNION 
    SELECT 3 

) 

SELECT SKU 
FROM PartProductSupplemental 
EXCEPT 
SELECT SKU 
FROM Inventory 

¿Seguro que esto es en realidad lo que se está ejecutando? ¿Hay algún SQL por encima de eso?

+0

No te juro que solo dice sintaxis incorrecta excepto, y me gusta pero por qué, y luego miro en interwebs y dice que así es como lo hacemos – bizness

+0

Lol, creo que arroja el error. ¿Hay algún SQL encima de la sección que usa el 'EXCEPT'. Tu sintaxis es válida, entonces algo más está activo. –

+0

SELECT COUNT (*) FROM (SELECT SKU DE PartProductSupplemental SALVO SELECT SKU del inventario ) – bizness

Cuestiones relacionadas