过程需要'int'类型的参数'@handle'。 [英] Procedure expects parameter '@handle' of type 'int'.
本文介绍了过程需要'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屋!
查看全文