create PROCEDURE GetResourceCount
@Sqlstr nvarchar(300),
@Counts int output
AS
set @Sqlstr=N'select @counts=sum(1) '+ @Sqlstr
exec sp_executesql @Sqlstr GO
@Sqlstr nvarchar(300),
@Counts int output
AS
set @Sqlstr=N'select @counts=sum(1) '+ @Sqlstr
exec sp_executesql @Sqlstr GO
解决方案 »
- 简单的 select 问题
- 求一个查询语言
- sql的更改时间格式设定应该放在哪里执行?
- 配置SQL数据源的问题
- SQL 菜鸟求帮忙
- Sqlserver20000,50G数据,按 25G划分
- 疑难杂症_难死一般菜鸟!大虾快来拿分!不胜感激涕零!
- a表是b表的子集,怎么得到b-a的记录,有这样的函数吗?求助!
- How to send a e-mail to operator when the disk out of space?(wait online)
- 引起数据库阻塞的原因除了写操作上锁之外,还有别的可能吗?
- 请问斑竹和各位高手,如何用sql语句实现,查询第m笔到第n笔资料??????急急急急
- 有那位大侠在工商部门注册过"工作室"?私人做的项目怎样给客户开发票呢?
@Sqlstr nvarchar(300),
@Counts int output
AS
set @Sqlstr=N'select @counts=sum(1) '+ @Sqlstr
exec sp_executesql @Sqlstr,N'@counts int',@Counts outputGO
@Sqlstr nvarchar(300),
@Counts int output
AS
set @Sqlstr=N'select @counts=sum(1) '+ @Sqlstr
exec sp_executesql @Sqlstr,N'@counts int output',@Counts outputGO
exec GetResourceCount ' from resourcetable' ,@countss output
selct @countss
你把set @Sqlstr='select @counts=sum(1) '+ @Sqlstr
改成set @Sqlstr='declare @counts int select @counts=sum(1) '+ @Sqlstr
就不会报错了但明显结果不对我觉得可以改成这样
create PROCEDURE GetResourceCount
@Sqlstr nvarchar(300)
AS
set @Sqlstr='select count(*) as num '+ @Sqlstr
exec sp_executesql @Sqlstr exec GetResourceCount ' from resourcetable'
不行!
sum(1)和count(*)
不是一样的意思吗?
要是 有上七八十个字段的话,count(*)很慢的!
不过你的方法!存储过程里要用游标返回结果呀!人家不想用游标!认为效率低!
pengdali(大力):
你的通过了,不过 我直接查询比存储过程还慢半秒钟,怎么回事?!
还有,你那个 N是什么意思!?
那位还有什么意见吗?说一下,悉听教诲!谢谢!~~~
2、例:
declare @a nvarcahr
set @a=N'大力'
------^^^^加N是标准写法!如果你的windows是英文的,那你直接写'大力'是会错的!
select @a