我想根据用户输入显示记录。
CREATE PROCEDURE [dbo].[ShowRecords]
@recordsToShow int
AS
BEGIN
select top @recordsToShow * from usermaster
END
答案 0 :(得分:0)
您应该在存储过程内部传递参数[这是用户输入的]。检查以下代码段:
CREATE PROCEDURE [dbo].[ShowRecords](@parameter int/tinyint)
AS
BEGIN
select top (@parameter) * from [Table_name];
END
-参数类型应为数字;
答案 1 :(得分:0)
在sql server(实际上是任何sql)中,您需要构建一个sql语句并执行它。例如给出的
user_id contact_type_id value status dt
----------- --------------- -------------------- ------ -----------------------
1 2 bbb 1 NULL
2 1 example@mail.com NULL NULL
4 1 example2@mail.com NULL NULL
5 2 123345 NULL NULL
6 3 skypeLogin2 NULL NULL
(5 row(s) affected)
CREATE PROCEDURE P
@recordsToShow int
AS
BEGIN
declare @sqlstmt Nvarchar(1000)
set @sqlstmt = concat('select top ',@recordstoshow,' * from users order by user_id desc')
EXECUTE SP_EXECUTESQL @SQLSTMT
END
GO
EXEC P 3
user_id contact_type_id value status dt
----------- --------------- -------------------- ------ -----------------------
6 3 skypeLogin2 NULL NULL
5 2 123345 NULL NULL
4 1 example2@mail.com NULL NULL
(3 row(s) affected)
顺便说一句,无序的BTW上衣是毫无意义的。