2012-11-20 50 views
7

Chúng tôi đang gặp sự cố với SQL Server 2012 do thiếu sự hỗ trợ cho nhà điều hành *= (LEFT OUTER JOIN).Cú pháp SQL cho LEFT OUTER JOIN trong SQL Server 2012

Bất cứ ai có thể cho tôi biết cú pháp chính xác cho SQL Server 2012 cho SQL sau hoạt động chính xác trên SQL Server 2008 là gì?

SELECT 
    t7410.name, t7408.type, t7410.length, 
    t7410.status, t7410.prec, t7410.scale, 
    t7409.type 
FROM 
    dbo.syscolumns t7410, dbo.systypes t7408, 
    dbo.sysobjects t7409, dbo.sysusers t7411, 
    master.dbo.syslogins t7412 
WHERE 
    t7410.id = t7409.id 
    AND t7411.uid = t7409.uid 
    AND t7409.name = 'GENERAL' 
    AND t7409.type IN ('U', 'S', 'V') 
    AND t7410.usertype *= t7408.usertype 
    AND t7412.sid = t7411.sid 
    AND t7412.name = user_name() 
ORDER BY 
    t7410.colid ASC 
+0

Ôi tôi thậm chí không biết bạn có thể làm điều đó. – Zane

+1

Chúng không được phép theo mặc định trong SQL 2000 ?. Thời gian qua tôi đã sử dụng chúng là Sql Server 6.0! –

+11

[Thói quen xấu để đá: sử dụng kiểu JOIN cũ] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins. aspx) - phong cách "danh sách các bảng được phân cách bằng dấu phẩy" kiểu cũ đã bị ngừng ** với tiêu chuẩn SQL ANSI - ** 92 ** .... –

Trả lời

19

Tại sao không viết những dòng này sử dụng ANSI JOIN:

SELECT t7410.name, t7408.type, t7410.length, 
    t7410.status, t7410.prec, t7410.scale, 
    t7409.type 
FROM dbo.syscolumns t7410 
INNER JOIN dbo.sysobjects t7409 
    ON t7410.id = t7409.id 
INNER JOIN dbo.sysusers t7411 
    ON t7411.uid = t7409.uid 
INNER JOIN master.dbo.syslogins t7412 
    ON t7412.sid = t7411.sid 
LEFT JOIN dbo.systypes t7408 
    ON t7410.usertype = t7408.usertype 
WHERE t7409.name = 'GENERAL' 
    AND t7409.type IN ('U', 'S', 'V') 
    AND t7412.name = user_name() 
ORDER BY t7410.colid ASC 
+1

Hmm đánh tôi, tôi chỉ làm việc theo cách của tôi. –

+5

+1, bằng cách sử dụng JOIN JOINs rõ ràng hơn –

+0

Lần trước tôi thấy ký hiệu ngôi sao là khi tôi phát triển Oracle ... – devio

Các vấn đề liên quan