请问,在存储过程中,
输出参数和返回值有什么不同呢?
在sql2000查询分析器里面执行带输入参数输出参数还有返回值的存储过程“execute***”怎么写呢?在vs2005中又是怎么表达,怎么样获取它的返回值呢?
请路过的高手不吝赐教,谢谢!
------解决方案--------------------------------------------------------
SqlCommand 的CommandType 设置为StoredProcedure 存储过程
参数用SqlParameter设置和得到
------解决方案--------------------------------------------------------
这是我写的一个判断数据库中某个表的某个(或者几个)字段的相同记录数的存储过程 对于你的问题 只看前6行和最后3行就行了 (可以直接拿去用的 欢迎测试)
CREATE PROCEDURE PRO_SELECT_SAME_VALUE_COUNT --ZYL 查询相同记录 2007-10-20
@tableName varchar(50),
@columnName varchar(50),
@value varchar(50),
@returnValue int output
AS
DECLARE @SQL NVARCHAR(4000)
DECLARE @TEMPSQL NVARCHAR(4000)
DECLARE @NAME VARCHAR(100),@TEMPVALUE VARCHAR(100)
DECLARE @COUNT INT,@POS INT,@POS2 INT
SET @TEMPSQL='1=1 '
-- SET @columnName='T1,T2,T3,'
-- SET @VALUE='V1,V2,V3,'
SET @POS=CHARINDEX(',',@columnName)
SET @POS2=CHARINDEX(',',@value)
IF @POS>0
BEGIN
WHILE @POS>0 AND @POS2>0
BEGIN
SET @NAME=SUBSTRING(@columnName,1,@POS-1)
SET @columnName=SUBSTRING(@columnName,@POS+1,LEN(@columnName))
SET @POS=CHARINDEX(',',@columnName)
SET @TEMPVALUE=SUBSTRING(@value,1,@POS2-1)
SET @value=SUBSTRING(@value,@POS2+1,LEN(@value))
SET @POS2=CHARINDEX(',',@value)
IF LEN(@NAME)>0 AND LEN(@TEMPVALUE)>0
BEGIN
SET @TEMPSQL=@TEMPSQL+' AND ['+@NAME+']='''+@TEMPVALUE+''''
END
IF @POS=0 AND @POS2=0 AND LEN(@columnName)>0 AND LEN(@value)>0
BEGIN
SET @TEMPSQL=@TEMPSQL+' AND ['+@columnName+']='''+@value+''''
END
END
END
ELSE IF @POS=0 AND @POS2=0 AND LEN(@columnName)>0 AND LEN(@value)>0
BEGIN
SET @TEMPSQL=@TEMPSQL+' AND ['+@columnName+']='''+@value+''''
END
SET @TEMPSQL=@TEMPSQL+' AND DEL=0'
-- PRINT ' END POS:'+CAST(@POS AS VARCHAR(100))
SET @SQL='SELECT @RET=COUNT(*) FROM '+@tableName+' WHERE '+@TEMPSQL+''
PRINT @SQL
EXECUTE SP_EXECUTESQL @SQL,N'@RET INT OUTPUT',@COUNT OUTPUT
SELECT @returnValue=@COUNT
PRINT @COUNT
GO