190 likes | 209 Views
Stored Procedures & User Defined Functions. MIS 424 Professor Sandvig. Today. Stored Procedures Store SQL statements on DB User Defined Functions (UDF) Database Transactions Rollback. Stored Procedures. So far: SQL or LINQ queries in .NET code Pass to database Alternative:
E N D
Stored Procedures & User Defined Functions MIS 424 Professor Sandvig
Today • Stored Procedures • Store SQL statements on DB • User Defined Functions (UDF) • Database • Transactions • Rollback
Stored Procedures • So far: • SQL or LINQ queries in .NET code • Pass to database • Alternative: • Stored procedures • Store SQL query on database • Call by name, pass parameters
Stored Procedures • Benefits: • Reusability • Call same SP from many projects • Hide complexity • Complex queries hidden behind simple interface • Division of duties • Programmers vs. database admin
Stored Procedures • Benefits: • Loose coupling • Create clear separation between code & data • Reduces dependencies • Changes in data source do not affect code • N-Tier Programming • Diagram (Source: Microsoft)
Benefits of Stored Procedures • Security • Set permissions on procedures • Users see only data accessible via procedure • Limit access to tables
Benefits of Stored Procedures • Efficiency • SQL compiled • Execution plan saved • Some controversy • Execute complex procedures • Triggers • Multiple SQL statements • Programming languages • Transact-SQL • .NET languages
Disadvantages • More code • Dependencies difficult to manage • Not fully supported by all databases • MySQL • Recently added • Limited • Microsoft Access • Store basic SQL statements
Creating • Visual Studio
Syntax & Example Example: • Using stored procedure • See handout
Views & Functions • Views • “Virtual” tables • No data, definition only • View defined by sql statement • May include data from several tables • Similar to stored procedure except no parameters • Benefits: • Hide table details • Set permissions
User Defined Functions • Functions (user defined functions) • Retrieve only • May use parameters • May call from SPs, other functions, SQL commands • Benefits • Reusability • Hide complexity
User Defined Functions • Creating in Visual Studio
User Defined Functions • Syntax Create FUNCTION dbo.GetProductCategories ( @ProductID int ) RETURNS TABLE AS RETURN Select c.CatLabel FROM tblCategories c, tblProductCategories p where c.CategoryID = p.CategoryID AND p.ProductID = @ProductID sql = "select * from dbo.GetProductCategories(16) order by CatLabel";
Transactions • Many transactions have dependency • Bank transfer • Remove $$ from one account • Add to another • On-line purchase • Charge credit card • Ship item • Item out-of-stock?
Transactions If one task fails: • Prior transactions are rolled back • Supported by most commercial databases • Not mySQL • Database keeps a log of transaction • Easy to use • Example: Datebase Transactions
Summary • Advanced Data Techniques • Stored Procedures • Parameters • Transactions • Goal: • Modularity • Reusability • Robust