sql - 将计数设置为变量

我想将表格的行数分配给一个变量。

DECLARE @ROW_COUNT nvarchar(1000);
SET @sql_row_count = 'SELECT COUNT(*) FROM ' + @TABLE_NAME;
EXEC sp_executesql @sql_row_count, @ROW_COUNT OUTPUT;

SET @ROW_COUNT = cast(@ROW_COUNT as int);
SELECT @ROW_COUNT;

@ROW_COUNT 返回空值。

感谢帮助。

最佳答案

对现有查询的评论

  1. @ROW_COUNT 应该是整数。如果您将其定义为整数,则无需使用 CAST()
  2. 您需要将 @ROW_COUNT 分配给 COUNT(*)
  3. 在@TABLE_NAME 上使用QUOTENAME() 以避免sql 注入(inject)。
  4. sp_executesql 定义参数。

修改查询如下


DECLARE @ROW_COUNT INT;
DECLARE @sql_row_count NVARCHAR(MAX)

SET @sql_row_count = 'SELECT @ROW_COUNT = COUNT(*) FROM ' + QUOTENAME(@TABLE_NAME);

-- print out for verification
PRINT @sql_row_count 
EXEC sp_executesql @sql_row_count, N'@ROW_COUNT INT OUTPUT', @ROW_COUNT OUTPUT;

-- SET @ROW_COUNT = cast(@ROW_COUNT as int);
SELECT @ROW_COUNT;

https://stackoverflow.com/questions/69279528/

相关文章:

sql - 这个参数化查询是否对SQL注入(inject)开放?

python - 基于 2 个数据帧的 pandas 高效数据操作

kubernetes - 为什么容器内存使用量在 cAdvisor 指标中翻倍?

python - 如何使用 PyAnsys 和 PyVista 创建共享拓扑

python - 如何使用 Python 加密大文件?

c# - 如何在 C# 控制台应用程序中计算正确?

python - 如何在 glob() 模式中写入 "or"?

r - 使用 dplyr 嵌套或分组两个变量,然后对数据执行 Cronbach's alpha 函数

python - 使用 dataframe pandas 中的 value_counts 创建新列

python - pandas- fetch_pandas_all 连接器杀死内核