首页 新闻 会员 周边

高手进来看看,这个SQL那里错了???

1
悬赏园豆:30 [已解决问题] 解决于 2012-03-12 15:24

declare @SQL nvarchar(4000);
set @SQL=' select @TotalRecord=COUNT(*) from Company '
declare @TotalRecord int;
 EXECUTE sp_executesql @SQL, '@TotalRecord int out ', @TotalRecord OUTPUT;
 select @TotalRecord;

星星点灯6的主页 星星点灯6 | 初学一级 | 园豆:164
提问于:2012-02-16 11:00
< >
分享
最佳答案
1

第4句中,在 '@TotalRecord int out '之前加上N,代码如下:

EXECUTE sp_executesql @SQL, N'@TotalRecord int out ', @TotalRecord OUTPUT;
收获园豆:15
dudu | 高人七级 |园豆:30979 | 2012-02-16 11:09
其他回答(4)
0

set @SQL=' select @TotalRecord=COUNT(*) from Company '
declare @TotalRecord int;

这个吧,你的@TotalRecord 声明在下面,上面怎么就用@TotalRecord 了呢。应该是先声明后使用吧。

悟行 | 园豆:12559 (专家六级) | 2012-02-16 11:05
0
View Code
 1 CREATE PROCEDURE test
2 @recordcount int output
3 As
4 set nocount on
5 begin
6 declare @sql nvarchar(4000)
7
8 set @sql = ' select @TotalRecord=COUNT(*) from customers'
9 --print @sql
10 Exec sp_executesql @sql,N'@recordCount int out',@recordCount out
11 set nocount off
12 end

希望对你有用 
我也是参考别的地方的
http://www.rosoo.net/a/201112/15446.html

收获园豆:5
唯吴独尊 | 园豆:707 (小虾三级) | 2012-02-17 21:35
0

嗯啊,@TotalRecord得先申明的

miloss | 园豆:254 (菜鸟二级) | 2012-02-20 14:01
0

declare @SQL nvarchar(4000)
set @SQL=' select @TotalRecord=COUNT(*) from Company'
declare @TotalRecord int
EXECUTE sp_executesql @SQL, N'@TotalRecord int out ', @TotalRecord OUTPUT
select @TotalRecord

@SQL声明为nvarchar,则应加“N”如:N'@TotalRecord int out '

收获园豆:10
--宁静以致远-- | 园豆:364 (菜鸟二级) | 2012-02-20 16:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册