下面是個存儲過程的應用
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
-- Add the parameters for the stored procedure here
@title nvarchar(100), --新聞標題
@content TEXT, --新聞內容
@pubUser NVARCHAR(50), --發布人
@catids varchar(200), --新聞類別列表,用“:”分割
@error nvarchar(200) OUTPUT --用來返回錯誤信息
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @newsid int --新聞id
declare @catid varchar(10) --新聞類別id
declare @pos int --類別列表中分隔符":"的位置
begin transaction
begin try
insert into newscontent(title,[content],pubuser)values(@title,@content,@pubUser)
set @newsid=@@identity
while(len(@catids)>0)
begin
set @pos=charindex(':',@catids)
if(@pos<>0)
begin
set @catid=substring(@catids,1,@pos-1)
set @catids=substring(@catids,@pos+1,@pos)
end
else
begin
set @catid=@catids
set @catids=''
end
insert into newscategory(newsid,catid)values(@newsid,cast(@catid as int))
end
commit transaction
return 0
end try
begin catch
set @error=error_message()
rollback transaction
return 1
end catch
END
在存儲中語句的內容要寫在begin和end之間
例如:
c#中的if語句
if(){};
而存儲過程中的if語句
if()
begin 語句 end
catch語句寫成
begin catch
//語句
end catch
在就是聲明變量的方法不一樣 用declare @num nvarchar形式 聲明
賦值使用set賦值
摘自:yu851293483的專欄