【发布时间】:2019-09-24 06:51:20
【问题描述】:
我想查找 col_name 的空值数。我在 SSMS 中使用以下代码:
DECLARE @NumNull INT = N'SELECT COUNT(*) FROM ' + @WhichTable + N' WHERE col_name IS NULL'
我已在程序开始时将 @WhichTable 声明为 NVARCHAR(MAX)。
我收到此错误消息:
消息 245,级别 16,状态 1,过程 sp_FILL_CHAIN_NAMES,第 22 行
将 nvarchar 值 'SELECT COUNT(*) FROM UNION_ALL WHERE col_name IS NULL' 转换为数据类型 int 时转换失败。
我不知道如何重写这段 SQL 代码?我试过exec(),甚至是SQL,但它似乎不起作用!
【问题讨论】:
-
您所有的表都有一个名为 col_name 的列?
-
显然它是一个字符串。为什么将变量声明为
INT? -
也许谷歌怎么做动态SQL。
标签: sql-server stored-procedures