|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 在每一条语句执行后被清除并且重置,应在语句验证后立即检查它,或将其保存到一个局部变量中以备事后查看。
------解决方案--------------------以上几个都知道,呵呵。