Sql server 我应该调试一个SQL Server存储过程,但无法理解使用´@xx=计数()?

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

我不知道SQL Server存储过程中的这些代码行到底在做什么

在那之后,我研究了
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