ساختن View و Function و Stored Procedure
دستور ساختن ویو در 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]