General - Do you know every object name should be owned by dbo?
Loading last updated info...
The reason is that you avoid ownership chain problems. Where Mary owns an object, Fred can read the object and then he creates a proc and he gives permission to Tom to execute. But Tom cannot because there is a product chain of ownership.
CREATE PROCEDURE [Adam Cogan].[Sales by Year]@Beginning_Date DateTime,@Ending_Date DateTime ASSELECT Orders.ShippedDate,Orders.OrderID,"vwOrderSubTotals".Subtotal,DATENAME(yy,ShippedDate) AS YearFROM OrdersINNER JOIN "vwOrderSubTotals"ON Orders.OrderID = "vwOrderSubTotals".OrderIDWHERE Orders.ShippedDate Between @Beginning_Date And @Ending_Date
❌ Figure: Figure: Bad Example
CREATE PROCEDURE [dbo].[Sales by Year]@Beginning_Date DateTime,@Ending_Date DateTime ASSELECT Orders.ShippedDate,Orders.OrderID,"vwOrderSubTotals".Subtotal,DATENAME(yy,ShippedDate) AS YearFROM OrdersINNER JOIN "vwOrderSubTotals"ON Orders.OrderID = "vwOrderSubTotals".OrderIDWHERE Orders.ShippedDate Between @Beginning_Date And @Ending_Date
✅ Figure: Figure: Good Example