相关疑难解决方法(0)

SQL Server存储过程返回代码奇怪

调用此代码的客户端受到限制,只能处理来自存储过程的返回码.因此,我们将通常的合同修改为RETURN -1错误,默认RETURN 0无错误

如果代码命中内部catch块,则RETURN代码默认为-4而不是0

有谁知道这来自哪里?供参考

干杯gbn

IF OBJECT_ID('dbo.foo') IS NOT NULL DROP TABLE dbo.foo
GO
CREATE TABLE dbo.foo (
    KeyCol  char(12) NOT NULL,
    ValueCol xml NOT NULL,
    Comment varchar(1000) NULL,
    CONSTRAINT PK_foo PRIMARY KEY CLUSTERED (KeyCol)
)
GO

IF OBJECT_ID('dbo.bar') IS NOT NULL DROP PROCEDURE dbo.bar
GO
CREATE PROCEDURE dbo.bar
    @Key char(12),
    @Value xml,
    @Comment varchar(1000)
AS
SET NOCOUNT ON
DECLARE @StartTranCount tinyint;
BEGIN TRY
    SELECT @StartTranCount = @@TRANCOUNT;

    IF @StartTranCount = 0 BEGIN …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server error-handling stored-procedures

8
推荐指数
1
解决办法
5466
查看次数

将单个值从存储过程返回到.Net:OUTPUT参数或ExecuteScalar会更好吗?

我需要创建一个需要返回一些记录计数的存储过程.我正在使用.Net来读取结果.

我可以使用OUTPUT参数来返回值,或者我可以select count(*)在存储过程中执行a 并使用SqlCommand.ExecuteScalar来读取它.

什么更好,为什么?

.net c# sql t-sql sql-server

3
推荐指数
1
解决办法
1710
查看次数

标签 统计

sql-server ×2

t-sql ×2

.net ×1

c# ×1

error-handling ×1

sql ×1

stored-procedures ×1