在存储过程中执行动态SQL,如下所示:

DECLARE @sqlCommand nvarchar(1000)
DECLARE @city varchar(75)
SET @city = 'London'
SET @sqlCommand = 'SELECT COUNT(*) FROM customers WHERE City = @city'
EXECUTE sp_executesql @sqlCommand, N'@city nvarchar(75)', @city = @city

如何使用count(*)列值作为SP中的返回值?

推荐答案

DECLARE @sqlCommand NVARCHAR(1000)
DECLARE @count INT
DECLARE @city VARCHAR(75)
SET @city = 'New York'

SET @sqlCommand = 'SELECT @cnt=COUNT(*) FROM customers WHERE City = @city'
EXECUTE sp_executesql @sqlCommand, N'@city nvarchar(75), @cnt int OUTPUT', @city = @city, @cnt = @count OUTPUT

SELECT @count

Sql相关问答推荐

获取家谱树中第一次出现的特定信息,然后停止

如何更改函数返回的列名?

SQL更新,在2个额外的表上使用内部连接

SQL(PostgreSQL)从条件创建点表

从以前的非空值行中获取值

了解放置时的连接

基于是否具有某些数据的关联表覆盖SELECT语句中的列值

了解多个分组集

用VB.NET在Dapper中实现MS Access数据库顺序透视

从单个表达式中的分隔字符串中取平均值

如何使用Clickhouse的COUNT聚合返回所有列,但GROUP BY是这些列的子集

将时间范围划分为全天和前后剩余小时

如何解释 SQL Server 中的 Foxpro 语法?

SQL的左连接在多对多关系情况下使用

根据开始时间和结束时间计算has_impact字段

joins 组合多个重复数据删除策略

MIN MAX 值与条件绑定

面对来自以下两个代码的不同输出

使用标准SQL 触发更新当前日期

交叉应用 OPENJSON / PIVOT - 错误的顺序