SQL存储过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。
ALTERPROCEDURE[dbo].[UpDown](@ETLint,@ToolIDuniqueidentifier)ASdeclare@Sqlvarchar(500...
ALTER PROCEDURE [dbo].[UpDown]
(
@ETL int,
@ToolID uniqueidentifier
)
AS
declare @Sql varchar(500)
set @SQL=' UPDATE CH_Tool_List SET '
BEGIN
if @ETL=0
begin
set @SQL=@SQL+' UpCount = UpCount + 1 '
end
else
begin
set @SQL=@SQL+' DownCount = DownCount + 1 '
end
set @SQL=@SQL+' WHERE ToolID = '+convert(varchar(40),@ToolID)
-- Execution the query
exec sp_executesql @SQL
select @@Error
END
错误提示:存储过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。请高手指点迷津,谢谢! 展开
(
@ETL int,
@ToolID uniqueidentifier
)
AS
declare @Sql varchar(500)
set @SQL=' UPDATE CH_Tool_List SET '
BEGIN
if @ETL=0
begin
set @SQL=@SQL+' UpCount = UpCount + 1 '
end
else
begin
set @SQL=@SQL+' DownCount = DownCount + 1 '
end
set @SQL=@SQL+' WHERE ToolID = '+convert(varchar(40),@ToolID)
-- Execution the query
exec sp_executesql @SQL
select @@Error
END
错误提示:存储过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。请高手指点迷津,谢谢! 展开
3个回答
展开全部
将你原来的
set @SQL=@SQL+' WHERE ToolID = '+convert(varchar(40),@ToolID)
改为
set @SQL=@SQL+' WHERE ToolID = '''+convert(varchar(40),@ToolID)+''''
就行了
set @SQL=@SQL+' WHERE ToolID = '+convert(varchar(40),@ToolID)
改为
set @SQL=@SQL+' WHERE ToolID = '''+convert(varchar(40),@ToolID)+''''
就行了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
exec sp_executesql @SQL --这里出错
你要把变量declare @sql varchar(500) 改成 declare @sql nvarchar(500)
看见了吗 多了个n
或者 把 exec sp_executesql @SQL 改成 exec(@sql)
ok了 问题应该解决了
你要把变量declare @sql varchar(500) 改成 declare @sql nvarchar(500)
看见了吗 多了个n
或者 把 exec sp_executesql @SQL 改成 exec(@sql)
ok了 问题应该解决了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
set @SQL=@SQL+' WHERE ToolID = '+convert(varchar(40),@ToolID)
-- Execution the query
--exec sp_executesql @SQL
print @SQL
看一下你的@sql变量是不是取到值了。。
-- Execution the query
--exec sp_executesql @SQL
print @SQL
看一下你的@sql变量是不是取到值了。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询