我在SQL Server中创建了一个视图,该视图正常工作并完全按照我的要求进行排序。这是视图...
CREATE VIEW [vwInventoryList]
AS
SELECT TOP 100 PERCENT x.[Cols_I_Need]
FROM dbo.vwInventoryListSummary x
GROUP BY x.[columns]
ORDER BY dbo.x.ID,dbo.x.[Description],[with_more_4_cols]
GO
问题是当我从C#或甚至在SQL Server Management Studio中执行下面的sql时,结果没有像我在视图中指定的那样排序,我不明白为什么。
Select * from vwInventoryList
我希望视图能够控制数据的排序,我的代码(select语句)应该只从视图中选择而不用在C#代码中指定顺序。
为什么会发生这种情况?
答案 0 :(得分:1)
请参阅Create a view with ORDER BY clause以了解视图中的order by
子句。这非常有帮助。您不必在C#代码中使用订单的一种方法是创建一个调用此视图的存储过程。在程序中你可以把sql放在
SELECT * FROM [vwInventoryList] ORDER BY {Column}
它使C#代码不会被select语句变得斑点,并允许您更好地跟踪过程。最终取决于你。另请参阅What are the pros and cons to keeping SQL in Stored Procs versus Code以获取有关何时使用sql内联与存储过程的更多信息。