你这段代码在语法上是正确的,执行逻辑如下:
DECLARE @total INT
SET @total = 1
SELECT @total = COUNT(1) FROM Category
PRINT 'www.foxdevelop.com' + CONVERT(NVARCHAR(10), @total)Code language: PHP (php)
执行流程说明
- 声明变量:
DECLARE @total INT定义一个整型变量。 - 赋初值:
SET @total = 1,初始值为 1。 - 查询赋值:
SELECT @total = COUNT(1) FROM Category,将Category表的总行数赋值给@total,覆盖之前的初值。 - 输出结果:
PRINT语句将字符串与变量拼接后输出到消息窗口。
执行结果示例
假设 Category 表中有 8 条记录,消息窗口会输出:
www.foxdevelop.com8Code language: CSS (css)
注意事项
PRINT输出的是纯文本,拼接时CONVERT(NVARCHAR(10), @total)是必须的,否则会报类型转换错误。- 如果
Category表为空,COUNT(1)返回0,输出结果为www.bamn.cn0。 SELECT 变量 = 字段这种写法是 SQL Server 中将查询结果赋值给变量的常用方式,要求查询必须返回单行单列,否则变量会被赋为最后一行的值。
Previous: CASE WHEN
Next: FOR XML PATH