CREATE PROCEDURE countm
(
@qtype varchar(100),
@ndxishu nvarchar(100),
@result int output
)
AS
declare @s nvarchar(4000)
set @s=N' select count(*) from ' +@qtype+ ' where 难度系数 = '+@ndxishu
exec sp_executesql @s,N'@result int output',@result output
select @result
GO
两个参数需要的值在数据库里都是汉字
提示 列名 '容易' 无效 (即ndxishu)
(
@qtype varchar(100),
@ndxishu nvarchar(100),
@result int output
)
AS
declare @s nvarchar(4000)
set @s=N' select count(*) from ' +@qtype+ ' where 难度系数 = '+@ndxishu
exec sp_executesql @s,N'@result int output',@result output
select @result
GO
两个参数需要的值在数据库里都是汉字
提示 列名 '容易' 无效 (即ndxishu)
(
@qtype varchar(100),
@ndxishu nvarchar(100),
@result int output
)
ASdeclare @s nvarchar(4000)
set @s=N'select @result=count(*) from ' +@qtype+ ' where 难度系数 = '''+@ndxishu+''''
exec sp_executesql @s,N'@result int output',@result output
select @result
GO--这样呢?
insert into a select 'a'
goCREATE PROCEDURE countm
(
@qtype varchar(100),
@ndxishu nvarchar(100),
@result int output
)
ASdeclare @s nvarchar(4000)
set @s=N'select @result=count(*) from ' +@qtype+ ' where 难度系数 = '''+@ndxishu+''''
exec sp_executesql @s,N'@result int output',@result output
select @result
GOdeclare @result int
exec countm 'a','a',@result output
select @resultdrop proc countm
drop table a
你这个写的好复杂啊
create table a(难度系数 varchar(10))
insert into a select 'a'
go
declare @result int
exec countm 'a','a',@result output
select @result
drop table a
为什么运行一遍后,这些代码在存储过程里都找不到了
(
@qtype varchar(100),
@ndxishu nvarchar(100),
@result int output
)
ASdeclare @s nvarchar(4000)
set @s=N'select @result=count(*) from ' +@qtype+ ' where 难度系数 = '''+@ndxishu+''''
exec sp_executesql @s,N'@result int output',@result output
select @result
GO建立存储过程然后调用
declare @result int
exec countm '表','字段值',@result output
select @result
insert into a select 'a'
go
declare @result int
exec countm 'a','a',@result output
select @result
drop table a这些不是存储过程里的代码,是为了让你看结果,我写的测试数据。