首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个存储过程的简单有关问题

2012-03-28 
在线等一个存储过程的简单问题。我现在想写一个存储过程,假设这个存储过程有以下变量@loginname nvarchar(5

在线等一个存储过程的简单问题。
我现在想写一个存储过程,假设这个存储过程有以下变量
@loginname nvarchar(50),
@articleno nvarchar(50),
@pagecount int,
@figcount int,
@tablecount int
我查询的时候有可能只需要以上的一个变量,如@loginname,其他的用不着了
但是我再往里面添值得时候还要填五个数据值,不填就会报错
我想请问各为高手这种情况该如何解决

[解决办法]
好象只能这么办.

然后在存储过程中去判断传入的参数是否有效,再对应的写SQL语句.
[解决办法]
把参数给个默认值

[解决办法]
CREATE PROC M 
@loginname nvarchar(50) = '', 
@articleno nvarchar(50) ='', 
@pagecount int = 0, 
@figcount int, 
@tablecount int = 0
AS
 BEGIN
SELECT TOP 1 * FROM sysobjects
 END
GO
EXEC dbo.M NULL,NULL,NULL,20,NULL

DROP PROC M 

这个是没有办法的,你必须把参数输够!要不就使用一个整体参数,合并成字符串,然后在存储过程中处理!
[解决办法]
实现模糊查询使用null值就可以

SQL code
@loginname nvarchar(50) =null, @articleno nvarchar(50)=null, @pagecount int =null, @figcount int =null, @tablecount int =null --在条件中加上null的条件where loginname=@loginname or loginname=nulland   articleno=@articleno or articleno=null 

热点排行