Sql server 我应该调试一个SQL Server存储过程,但无法理解使用´@xx=计数()?
我不知道SQL Server存储过程中的这些代码行到底在做什么 在那之后,我研究了Sql server 我应该调试一个SQL Server存储过程,但无法理解使用´@xx=计数()?,sql-server,stored-procedures,count,Sql Server,Stored Procedures,Count,我不知道SQL Server存储过程中的这些代码行到底在做什么 在那之后,我研究了count()的定义和用法,也没有弄清楚。尤其是代码中的=和'count(*)中的*让我很困惑 我是初学者,所以我想道歉,如果这是一个非常基本的问题,我理解了 Declare @Count tinyint Declare @Count2 tinyint SELECT @Count2 = Count(*) FROM table where artno = @new If @Count2 != 0 BEGIN
count()
的定义和用法,也没有弄清楚。尤其是代码中的=
和'count(*)中的*
让我很困惑
我是初学者,所以我想道歉,如果这是一个非常基本的问题,我理解了
Declare @Count tinyint
Declare @Count2 tinyint
SELECT @Count2 = Count(*) FROM table where artno = @new
If @Count2 != 0
BEGIN
delete from table where artno = @new
END
获取artno
等于@new
变量中内容的记录数,并将该数存储在@Count2
变量中
SELECT @Count2 = Count(*) FROM table where artno = @new
如果@count2
不是0
顺便说一句,
@Count
变量未在该代码中使用,已过时。感谢您的快速响应和解释,但我想了解有关存储过程的更多信息。存储过程中的变量是全局设置的还是局部的(仅在该过程中起作用)?我不得不问这个问题,因为在这个存储过程中,'@new'没有初始化。系统有许多存储过程,其中大多数使用相同的变量名。是的,在本程序中没有任何地方使用“Count”。这只是我在这里介绍的存储过程的一部分,不理解这些,变量是局部的。每次调用过程时,它们都会被初始化。再次感谢,但是看看代码,似乎artno=@new
会初始化@new
变量,因为如果不初始化,它将如何从表中删除相同的artno
。由于@new
只在这一行初始化。请给我一些建议,我不太确定,但看看存储过程中的整个代码,看起来是这样的。请参阅。您必须在某个地方初始化@new
变量。它甚至没有在代码段中定义。因此,如果您的代码没有抛出错误,则会在某个地方定义变量,其中定义了yes,@new
,但会查找其初始化。它是一个varchar(150)
,已定义但未设置其值其中artno=@new
这看起来像是条件和初始化,所以我很困惑。如果它是一个条件,那么它应该在代码中的某个地方初始化,然后才能用作条件,对吗?
If @Count2 != 0
BEGIN
delete from table where artno = @new
END