日期:2014-05-18  浏览次数:20391 次

|M| 从来没有用过存储过程,现在学习:一句存储过程 大家看我理解得对不对
--删除信息
CREATE   PROCEDURE   DeleteNews(   @ID   INT   )
AS
SET   NOCOUNT   ON
DELETE   FROM   [news]   WHERE   [ID]   =   @ID

IF   @@ERROR   =   0   RETURN   1   ELSE   RETURN   0

GO
----------------------------------------------
CREATE   PROCEDURE   DeleteNews   这里是创建DeleteNews存储过程
(   @ID   INT   )   这里定义了一个ID为Int型变量
SET   NOCOUNT   ON     //不返回计数     //网上找的说明
DELETE   FROM   [news]   WHERE   [ID]   =   @ID   执行这SQL
IF   @@ERROR   =   0   RETURN   1   ELSE   RETURN   0   没有错误的时候返回1否为0
上面有点像C#
CREATE   PROCEDURE   DeleteNews(   @ID   INT   )
{
SET   NOCOUNT   ON
DELETE   FROM   [news]   WHERE   [ID]   =   @ID

IF   @@ERROR   =   0   RETURN   1   ELSE   RETURN   0
}
那么这里的AS   GO  
还有   @ID   为什么前面要加多一个@
  @@ERROR   是两个又是为什么

------解决方案--------------------
@@ERROR 是SQL Server预定义的全局变量 返回最后执行的 Transact-SQL 语句的错误代码

注意SQL Server预定义的全局变量只能使用不能声明
------解决方案--------------------
@ID 表示一个事物内的变量,不加@表示sql的一个对象比如表,列,等

@@error是sql的全局变量
------解决方案--------------------
AS是SQL的语法吧,创建视图也是这样,大意应该是 "这就是 "

GO 代表批处理的结束,你写的N条语句做为1批发送到服务器

@ID前面的@ ... SQL Server局部变量的前缀
------解决方案--------------------
一般都不用狗!!!
------解决方案--------------------
嗯。又学习了。
------解决方案--------------------
学习,了解
------解决方案--------------------
@是SQL里定义变量的前缀

@@ERROR是全局变量,表示错误行数,如果是0则表示没有错误,执行成功
------解决方案--------------------
@@ERROR 返回最后执行的 Transact-SQL 语句的错误代码。 语法 @@ERROR 返回类型 integer 注释 当 Microsoft? SQL Server? 完成 Transact-SQL 语句的执行时,如果语句执行成功,则 @@ERROR 设置为 0。若出现一个错误,则返回一条错误信息。@@ERROR 返回此错误信息代码,直到另一条 Transact-SQL 语句被执行。您可以在 sysmessages 系统表中查看与 @@ERROR 错误代码相关的文本信息。 由于 @@ERROR 在每一条语句执行后被清除并且重置,应在语句验证后立即检查它,或将其保存到一个局部变量中以备事后查看。
------解决方案--------------------
以上几个都知道,呵呵。