2010-04-17 95 views
1

在另一篇文章中,我得到了一個關於重複SQL的回覆。你能解釋什麼是重複性SQL?重複性SQL:這是什麼意思?

SQL Code Smells

我想使它成爲一個新的職位,因爲它是一個不同的主題。 回覆說使用VIEW可以避免使用「執行完全相同連接但不同過濾器的多個存儲過程」。

如果我們使用Stored Proecure,請給出一個只能使用重複查詢才能實現的例子嗎?

感謝

Lijo

回答

0

我認爲在這種情況下意味着OP就是當你的存儲過程返回[同樣可以在不重複使用時視圖來實現]可以說,用戶信息

喜歡的東西

CREATE PROCEDURE UserByID (
     @UserID INT 
) 
AS 
BEGIN 
    SELECT * 
    FROM Users u INNER JOIN 
      UserGroups ug ON u.UserID = ug.UserID 
    WHERE u.UserID = @UserID 
END 

CREATE PROCEDURE UserByName (
     @UserName VARCHAR(50) 
) 
AS 
BEGIN 
    SELECT * 
    FROM Users u INNER JOIN 
      UserGroups ug ON u.UserID = ug.UserID 
    WHERE u.UserID = @UserName 
END 

您可以取得,而創建一個視圖

CREATE VIEW UserInformation 
AS 
SELECT * 
FROM Users u INNER JOIN 
     UserGroups ug ON u.UserID = ug.UserID 

並使用

SELECT * 
FROM UserInformation 
WHERE UserID = @UserID 

SELECT * 
FROM UserInformation 
WHERE Name = @UserName