stored procedures

17
SQL Server

Upload: aine

Post on 03-Feb-2016

30 views

Category:

Documents


0 download

DESCRIPTION

SQL Server. Stored Procedures. CREATE PROCEDURE dbo.CategoryList WITH ENCRYPTION AS SELECT ProductCategoryName, ProductCategoryDescription FROM dbo.ProductCategory; go EXEC sp_helptext ‘dbo.CategoryList’; Result: The text for object ‘dbo.CategoryList’ is encrypted. اجرای یک رویه راه دور. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Stored Procedures

SQL Server

Page 2: Stored Procedures

CREATE PROCEDURE dbo.CategoryList WITH ENCRYPTION AS SELECT ProductCategoryName,

ProductCategoryDescription FROM dbo.ProductCategory; go EXEC sp_helptext ‘dbo.CategoryList’;

Result: The text for object ‘dbo.CategoryList’ is encrypted.

Page 3: Stored Procedures

اجرای یک رویه راه دور EXEC [MAUINoli\

SQL2COPENHAGEN].OBXKites.dbo.pProductCategory_AddNew ‘Food’, ‘Eatables’;

SELECT CustomerTypeName, DiscountPercent, [Default]

FROM OPENQUERY( [MAUI\COPENHAGENNoli\SQL2], ‘EXEC

OBXKites.dbo.pCustomerType_Fetch;’);

Page 4: Stored Procedures

USE OBXKites; go CREATE PROCEDURE dbo.CategoryGet ( @CategoryName NVARCHAR(35) )AS SELECT ProductCategoryName,

ProductCategoryDescription FROM dbo.ProductCategory WHERE ProductCategoryName =

@CategoryName; Go EXEC dbo.CategoryGet N’Kite’;

Page 5: Stored Procedures

CREATE PROCEDURE dbo.pProductCategory_Fetch2 @Search NVARCHAR(50) = NULL -- If @Search = null then return all ProductCategories -- If @Search is value then try to find by Name AS SET NOCOUNT ON; SELECT ProductCategoryName, ProductCategoryDescription FROM dbo.ProductCategory WHERE ProductCategoryName = @Search OR @Search IS NULL; IF @@RowCount = 0 BEGIN; RAISERROR( ‘Product Category ‘’%s" Not Found.’,14,1,@Search); END;

Page 6: Stored Procedures

Create Procedure with Table-Valued Parameters

CREATE TYPE OrderDetailsType AS Table (

LineNumber INT, ProductID INT, IsNew BIT, IsDirty BIT, IsDeleted BIT );

Page 7: Stored Procedures

Create Procedure with Table-Valued Parameters

CREATE PROC OrderTransactionUpdateTVP (@OrderID INT OUTPUT, @CustomerID INT, @OrderDate DateTime,@Details as OrderDetailsType READONLY)AS SET NoCount ON ; Begin Try Begin Transaction; -- If @OrderID is NULL then it’s a new order, so Insert Order If @OrderID IS NULL BEGIN; Insert Orders(OrderDate, CustomerID) Values (@OrderDate, @CustomerID); SET @OrderID = Scope_Identity(); END; SELECT * FROM @Details ; Commit Transaction; End Try Begin Catch; RollBack; End Catch RETURN;

Page 8: Stored Procedures

نحوه فراخوانی رویه با پارامتر از نوع جدول

Declare @OrderID INT; DECLARE @DetailsTVP as OrderDetailsType; INSERT @DetailsTVP

(LineNumber,ProductID,IsNew,IsDirty,IsDeleted) VALUES (5, 101, -1, -1, 0), (2, 999, 0, -1, 0), (3, null, 0, 0, 0); EXEC OrderTransactionUpdateTVP @OrderID = @OrderID Output , @CustomerID = ‘78’, @OrderDate = ‘2008/07/24’, @Details = @DetailsTVP;

Page 9: Stored Procedures

برگرداندن مقدار از رویه USE OBXKites; go CREATE PROC dbo.GetProductName ( @ProductCode CHAR(10), @ProductName VARCHAR(25) OUTPUT) AS SELECT @ProductName = ProductName FROM dbo.Product WHERE Code = @ProductCode; RETURN;

Page 10: Stored Procedures

نحوه فراخوانی رویه اخیر

USE OBXKites; DECLARE @ProdName

VARCHAR(25); EXEC dbo.GetProductName ‘1001’,

@ProdName OUTPUT; PRINT @ProdName;

Page 11: Stored Procedures

RETURNاستفاده از CREATE PROC dbo.IsItOK ( @OK VARCHAR(10))AS IF @OK = ‘OK’ BEGIN; RETURN 0; END; ELSE BEGIN; RETURN -100; END;

Page 12: Stored Procedures

Procedure شکل کلی دستور ایجاد CREATE PROCEDURE|PROC <name> [<parameter name> [schema.]<data type>

[VARYING] [= <default value>] [OUT [PUT]] [READONLY] [, ……]]

[WITH RECOMPILE| ENCRYPTION | [EXECUTE AS { CALLER|SELF|OWNER|<’user name’>}]

AS <code> | EXTERNAL NAME <assembly name>.<assembly class>.<method>

Page 13: Stored Procedures

RAISERROR (<message ID | message string | variable>, <severity>, <state>

[, <argument> [,<...n>]] ) [WITH LOG|SETERROR|NOWAIT]

Page 14: Stored Procedures

sp_addmessage [@msgnum =] <msg id>,

[@severity =] <severity>, [@msgtext =] <’msg‘> [, [@lang =] <’language‘>] [, [@with_log =] [TRUE|FALSE]] [, [@replace =] ‘replace‘]

Page 15: Stored Procedures

sp_addmessage @msgnum = 60000, @severity = 10, @msgtext = ‘%s is not a valid Order

date. Order date must be within 7 days of

current date.’;

Page 16: Stored Procedures

sp_dropmessage <message number>

Page 17: Stored Procedures