我的表格“q_rank”有2列Q_ID和KTTH
q_id KTTH
1 1
2 1
我创建了这个程序
CREATE PROCEDURE [dbo].[test]
@Param1 varchar(10)
AS
BEGIN
DECLARE @query nvarchar(MAX);
SET @query= (SELECT @Param1 FROM [Exam].[dbo].[q_rank] a where q_id=2)
SELECT @query
END
但是当我
EXEC test 'KTTH'
结果是KTTH,但我希望它是1。 请帮帮我
答案 0 :(得分:1)
尝试使用sp_executesql
:
DECLARE @outval tinyint;
SET @query= 'SELECT @outval = ' + @Param1 + ' FROM [Exam].[dbo].[q_rank] a where q_id=2';
sp_executesql @query, N'@outval tinyint', @outval = @outval output;
return @outval;
答案 1 :(得分:0)
您需要动态SQL
CREATE PROCEDURE [dbo].[test]
@Param1 varchar(10)
AS
BEGIN
DECLARE @query nvarchar(MAX);
SET @query= 'SELECT ' + @Param1 + ' FROM [Exam].[dbo].[q_rank] a where q_id=2'
exec (@query)
END