过程需要'int'类型的参数'@handle'。 [英] Procedure expects parameter '@handle' of type 'int'.

查看:176
本文介绍了过程需要'int'类型的参数'@handle'。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hello Friends,

我正在尝试使用

执行动态查询

Hello Friends,
I'm trying executing dynamic query using

EXEC SP_EXECUTE





但是它给出了错误说:

过程需要'int'类型的参数'@handle'。



这是我的程序



but it gives error saying:
Procedure expects parameter '@handle' of type 'int'.

Here is my procedure

ALTER proc [dbo].[sp_StudioReleaseChallan_sel]  
(
	@Criteria nvarchar(4000)='', 
	@startRowIndex  int=0,    
	@maximumRows  int=0  )  
as  
begin  
set nocount on;  
DECLARE @SQL NVARCHAR(MAX)
IF LEN(@Criteria) <> 0
BEGIN
	SET @Criteria = ' AND ' + @Criteria
END

SET @SQL = 'select A.iterationid [jobid], jobno,firstname+'' ''+lastname [User],clientname,projectname,brandname,awcategoryname,  
 ''Studio Master'' [JobType]  
,variantname,quantity+'' ''+unit [SKU],iterationdate [StartTime],expecteddeleverydate,statusname  
,artworktype,A.statusid from tbl_iteration A  
inner join tbl_user U on U.userid=A.userid  
inner join tbl_client C on C.clientid = A.clientid  
inner join tbl_project P on P.projectid = A.projectid  
inner join tbl_brand B on B.brandid = A.brandid  
inner join tbl_awcategory AW on AW.awcategoryid=A.artworkcategoryid  
inner join tbl_variant V on V.variantid = A.variantid  
inner join tbl_sku on tbl_sku.skuid=A.skuid  
inner join tbl_status S on S.statusid = A.statusid  
where artworktype = 9 and A.statusid not in (30,45,49) '+ @CRITERIA + ' 
order by jobno desc'  

EXEC SP_EXECUTE @SQL
end





任何人都可以告诉这个错误意味着什么



提前致谢



Can anyone tell what this error means

Thanks in advance

推荐答案

参见在其中 [ ^ ]。



您应该使用:



exec sp_executesql MyProc


亲爱的Prashant,



请检查语法sp_executesql的。以下是使用动态查询从表中获取行数的示例





Dear Prashant,

Please check the syntax of sp_executesql. following is the example to get row count from the table using dynamic query


DECLARE @SQLString nvarchar(500);
DECLARE @CountSQLQuery varchar(30);
DECLARE @CountResult varchar(30);

SET @SQLString = N'SELECT @result = COUNT(*) FROM TableName'
	
EXECUTE sp_executesql @SQLString, N'@result varchar(30) OUTPUT',@result=@CountSQLQuery OUTPUT;


你好,



你需要用户exec SP_EXECUTESQL @sql 。因为您要执行动态查询。 sp_executesql是内置的存储过程,我的microsoft接受字符串格式的查询并对数据库执行相同的操作。





有两种不同的方式执行动态查询。



1)不使用inbuild商店程序



Hello,

You need to user exec SP_EXECUTESQL @sql. Since you are tring to execute dynamic query. sp_executesql is inbuilt stored procedure provided my microsoft which accepts a query in string format and executes the same against the databse.



There are two different way of executing the dynamic query.

1) without using inbuild Store procedure


exec (@sql)





2)使用存储过程





2) Using stored procedure

exec SP_EXECUTESQL @sql


这篇关于过程需要'int'类型的参数'@handle'。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆