Sql server 从SQL Server存储过程返回数据
我想问一下如何返回Sql server 从SQL Server存储过程返回数据,sql-server,stored-procedures,return-value,Sql Server,Stored Procedures,Return Value,我想问一下如何返回计数(*),因为每次调用存储过程时,它只打印结果 代码如下: ALTER PROCEDURE sp_returnCount @tblname sysname , @colname sysname , @key varchar(10) AS DECLARE @sql nvarchar(4000) DECLARE @num INT DECLARE @params NVARCHAR (4000) SELECT @sql =
计数(*)
,因为每次调用存储过程时,它只打印结果
代码如下:
ALTER PROCEDURE sp_returnCount
@tblname sysname
, @colname sysname
, @key varchar(10)
AS
DECLARE @sql nvarchar(4000)
DECLARE @num INT
DECLARE @params NVARCHAR (4000)
SELECT @sql = 'SELECT COUNT(*) ' +
' FROM dbo.' + quotename(@tblname) +
' WHERE ' + quotename(@colname) + ' LIKE @key'
EXEC sp_executesql @sql, N'@key varchar(10)', @key
--just prints 5 or any numbers...
我想返回
count(*)
以在另一个查询中使用它。提前谢谢。你试过退货吗@@rowcount是的,你说得对。我试过了,它成功了。谢谢@dijkgraaf确保@Rowcount紧跟在语句之后。否则,您可能无法获得所需的结果。或者,将其分配给另一个变量,以便在查询或存储过程的后续部分中使用注意:不应在存储过程中使用sp\uu
前缀。微软已经这样做了,而且你确实有可能在将来的某个时候发生名称冲突。最好只是简单地避免使用sp.
并使用其他东西作为前缀,或者根本不使用前缀!你试过返回吗@@rowcount是的,你就在那里。我试过了,它成功了。谢谢@dijkgraaf确保@Rowcount紧跟在语句之后。否则,您可能无法获得所需的结果。或者,将其分配给另一个变量,以便在查询或存储过程的后续部分中使用注意:不应在存储过程中使用sp\uu
前缀。微软已经这样做了,而且你确实有可能在将来的某个时候发生名称冲突。最好只是简单地避免使用sp.
并使用其他东西作为前缀,或者根本不使用前缀!谢谢你的帮助。期待向您提出更多问题。:)谢谢你的帮助。期待向您提出更多问题。:)
ALTER PROCEDURE sp_returnCount
@tblname sysname
, @colname sysname
, @key varchar(10)
AS
DECLARE @sql nvarchar(4000)
DECLARE @num INT
DECLARE @params NVARCHAR (4000)
DECLARE @count int
SELECT @sql = 'SELECT @count = COUNT(*) ' +
' FROM dbo.' + quotename(@tblname) +
' WHERE ' + quotename(@colname) + ' LIKE @key'
EXEC sp_executesql @sql, N'@key varchar(10), @count int OUTPUT', @key, @count OUTPUT