用sp_executesql这个存储过程declare @sql varchar(8000),
@out intset @sql='select @jianshu=count(*),@ZongYS=sum(ZongYS) from
(select a.ID,b.ZongYS from '+@AJTB+' a inner join '+@FILETB+' b on a.id=b.ajid) c
where id='+@AJID+' group by id'
exec @sql,N'@jianshu begint',@out output
@out intset @sql='select @jianshu=count(*),@ZongYS=sum(ZongYS) from
(select a.ID,b.ZongYS from '+@AJTB+' a inner join '+@FILETB+' b on a.id=b.ajid) c
where id='+@AJID+' group by id'
exec @sql,N'@jianshu begint',@out output
解决方案 »
- 怎样查看sql server2000是企业版还是标准版?
- 两个格式完全一样的表怎样并成一个表?
- 如何把自定义函数从一个数据库复制到另外一个数据库?
- 還分, 并再提問:關于在觸發器出現錯誤的處理!
- 求修改表名中字段名的SQL 语句!!散分!!
- 无法打开用户默认数据库。登录失败
- 使用Microsoft SQL 2005 时,取里面的datatime类型时间的时候,总是显示出来2008-06-02 00:00:00.0,请问应该如何将后面的00:00:00.0去掉呢?
- 单引号的冲突
- 请问各位一个SQL 6.5 的问题
- 有什么方法可以将access数据库转成oracle8i数据库?分少还可以加分!
- 疑惑
- 请指教!
这句不太明白,是不是打错了?
select @sql:='select '+@jianshu+'=count(*),'+@ZongYS+'=sum(ZongYS) from '+
'(select a.ID,b.ZongYS from OA_DataSet_WSDAAJ a inner join OA_DataSet_WSDA b on a.id=b.ajid) c '+
' where id='+@AJID+
' group by id'exec (@sql)
exec sp_executesql @sql,N'@jianshu begint',@out output
过程需要参数 '@statement' 为 'ntext/nchar/nvarchar' 类型。
declare @AJID bigint
declare @jianshu bigint
declare @ZongYS bigint
declare @sqlstr varchar(200)
declare @AJTB varchar(100)
declare @FILETB varchar(100)
set @FILETB='OA_DataSet_WSDA'
set @AJTB='OA_DataSet_WSDAAJ'
set @AJID=1
declare @sql nvarchar(4000),
@out intset @sql='select @jianshu=count(*) from
(select a.ID,b.ZongYS from '+@AJTB+' a inner join '+@FILETB+' b on a.id=b.ajid) c
where id='+convert(varchar(50),@AJID)+' group by id'
exec sp_executesql @sql,N'@jianshu bigint output',@out output
可以运行成功,但是什么返回值都没有啊?我是需要得到count(*)也就是@jianshu的
另外,我其实需要两个值@jianshu和@ZongYS,这里我只设了@jianshu我该如何加上@ZongYS
可以是多个@out1,@out2