小编Mar*_*rin的帖子

转换失败 varchar 到 int

运行此代码时:

declare @SQL NVARCHAR(max);
declare @intFlag INT;
set @intFlag = 2;

SET @SQL = ' SELECT * into [##tmp1] 
FROM servicesstats_0511_0412 s WHERE department=''ACC''
and ((SELECT COUNT(*) FROM servicesstats_0511_0412 WHERE department <> ''ACC''
and s.studentid=studentid ) = ' + @intFlag + ')';

EXEC SP_EXECUTESQL @SQL 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

将 varchar 值 'SELECT * 转换为 [##tmp1] FROM servicesstats_0511_0412 s WHERE Department='ACC' and ((SELECT COUNT(*) FROM servicesstats_0511_0412 WHERE department <> 'ACC' and s.studentid=studentid ) = 时转换失败' 到数据类型 int。

servicesstats_0511_0412 将是动态的,因此需要动态 SQL。

我认为这不应该发生,因为 count(*) 总是返回一个 …

sql-server-2008

-1
推荐指数
1
解决办法
9127
查看次数

标签 统计

sql-server-2008 ×1