یادداشت های یک برنامه نویس
دوستدار فرهنگ و هنر کهن ایرانی

ساختن View و Function و Stored Procedure


پرسش امنیتی

مقدار 17 به علاوه 4 چقدر میشود؟

دیدگاه شما پس از تایید نمایش داده خواهد شد.

دستور ساختن ویو در SQL server :

Create VIEW [dbo].[Test__V]
AS
SELECT  Code, Name, ID
FROM    dbo.Test

برای تغییر در ویویی که قبلا ایجاد شده کافی است در کد بالا بجای Create از Alter استفاده نمایید.

همچنین به روش زیر می توان چک کرد اگر ویو در پایگاه داده وجود ندارد اول یک ویو خالی از آن را بسازد سپس با استفاده از Alter تغییرات را در آن اعمال کند:

IF OBJECT_ID('[dbo].[Test__V]') IS NULL 
EXEC('CREATE VIEW [dbo].[Test__V] AS SELECT 1 AS A')
go
Alter VIEW [dbo].[Test__V]
AS
SELECT  Code, Name, ID
FROM    dbo.Test

دستور ساختن فانکشن در SQL server :

Create FUNCTION [dbo].[Test__TF](@Code AS nvarchar(30))
RETURNS TABLE AS
RETURN
SELECT  Code, Name, ID
FROM    dbo.Test
WHERE   Code = @Code

ممکن است لازم داشته باشید یک فانکشن با شرایطی خروجی های متفاوتی داشته باشد؛ در این حالت ابتدا باید یک متغیر از نوع جدول تعریف کنید سپس جدول را پر کنید و آن را برگردانید:

CREATE FUNCTION Test__TF_WithIF (@Code nvarchar(50))
RETURNS @Result TABLE 
(
  ID int NOT NULL,
  Code nvarchar(50) NOT NULL,
  Name nvarchar(50) NOT NULL
)
AS
BEGIN
 if @Code = 'E'
  insert into @Result select * from [dbo].[Test] where code ='E'
 else
  if @Code = 'M'
   insert into @Result select * from [dbo].[Test]  where code ='M'
 RETURN 
END

برای تغییر در فانکشنی که قبلا ایجاد شده بجای Create از Alter استفاده نمایید. به روش زیر می توان چک کرد اگر فانکشن وجود ندارد اول آن را بسازد سپس با استفاده از Alter تغییرات را در آن اعمال کند:

IF OBJECT_ID('[dbo].[Test__TF]') IS NULL 
  EXEC('CREATE Function [dbo].[Test__TF]() 
       RETURNS TABLE AS RETURN SELECT 1 AS A')
GO
Alter FUNCTION [dbo].[Test__TF](@Code AS nvarchar(30))
RETURNS TABLE AS
RETURN
SELECT  Code, Name, ID
FROM    dbo.Test
WHERE   Code = @Code

دستور ساختن اسکالرفانکشن (Scalar Function) در SQL server :

Create FUNCTION [dbo].[PlusPlus] (@number as int)
RETURNS int AS  
BEGIN 
	RETURN @number+1;
END

برای تغییر در اسکالرفانکشنی که قبلا ایجاد شده بجای Create از Alter استفاده نمایید.

به روش زیر می توان چک کرد اگر اسکالرفانکشن وجود ندارد اول آن را بسازد سپس با استفاده از Alter تغییرات را در آن اعمال کند:

IF OBJECT_ID('[dbo].[PlusPlus]') IS NULL 
	EXEC('CREATE Function [dbo].[PlusPlus]() 
         RETURNS int AS BEGIN RETURN 1 END')
Go
ALter FUNCTION [dbo].[PlusPlus] (@number as int)
RETURNS int AS  
BEGIN 
	RETURN @number+1;
END

دستور ساختن Stored Procedure در SQL server :

Create PROCEDURE [dbo].[DeleteTest]
	@Code as nvarchar(30)	
AS
BEGIN
Delete FROM dbo.Test WHERE Code = @Code	
END

برای تغییر در SP که قبلا ایجاد شده بجای Create از Alter استفاده نمایید. 

به روش زیر می توان چک کرد اگر SP وجود ندارد اول آن را بسازد سپس با استفاده از Alter تغییرات را در آن اعمال کند:

IF OBJECT_ID('[dbo].[DeleteTest]') IS NULL 
	EXEC('CREATE PROCEDURE [dbo].[DeleteTest] AS SET NOCOUNT ON')
GO
Alter PROCEDURE [dbo].[DeleteTest]
	@Code as nvarchar(30)	
AS
BEGIN
Delete FROM dbo.Test WHERE Code = @Code	
END

برای حذف کامل View,Function,SP از پایگاه داده بصورت زیر عمل می کنیم:

DROP VIEW [dbo].[Test__V]
DROP FUNCTION [dbo].[Test__TF]
DROP PROCEDURE [dbo].[DeleteTest]