重复SQL:这是什么意思?

时间:2010-04-17 07:41:42

标签: sql

在另一篇文章中,我得到了一个回复,讲述了重复SQL。你能解释一下什么是Repetitive SQL吗?

SQL Code Smells

我想把它作为一个新帖子,因为它是一个不同的主题。 回复说,使用VIEW可以避免使用“执行完全相同连接但使用不同过滤器的多个存储过程”。

如果我们使用Stored Proecure,您能举一个只能通过重复查询来实现的例子吗? [使用VIEWS时,无需重复即可实现相同]

由于

Lijo

1 个答案:

答案 0 :(得分: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