1

だから私は一日中この問題と戦ってきました。最初は、すべてが良さそうに見えたにもかかわらず、呼び出しコードに問題があるに違いないと思いました。呼び出しコードは、VB 分離コード ファイルからの単なる標準呼び出しであり、データ バインディングにはリンクされていません。この問題を抱えている他の多くの人々がDataGridsなどのためにそれを抱えているのを見たので、これについて言及します.

次に、データベース自体に移動し、手順を手動で実行しましたが、SQL Sevrer Manager で同じエラーが発生しました。手順を削除して、最初から書き直すところまで再作成しようとしましたが、それでも発生します。@Password パラメータからデフォルトの NULL 値を削除しようとしましたが、それでも変更はありません。

SQL Server 2008 R2 を実行しています

手順コードは次のとおりです。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[sp_AddUser] 
    @Username       varchar(50),
    @Fullname       varchar(50),
    @Password       varchar(50) = NULL,
    @Datecreated    DateTime,
    @RoleID         int,
    @ResetPwd       bit,
    @Email          varchar(50), 
    @locked         bit, 
    @Sign           varchar(max), 
    @Sysuser        bit
AS
BEGIN
    INSERT INTO users ( 
        user_name,
        full_name,
        password,
        datetime_created,
        role_id,
        password_reset,
        email_address, 
        locked, 
        email_signature, 
        asrsys_user)
    VALUES (
        @Username,
        @Fullname,
        @Password,
        @Datecreated,
        @RoleID,
        @ResetPwd,
        @Email, 
        @locked, 
        @Sign, 
        @Sysuser)
END
4

1 に答える 1

5

sp_ストアド プロシージャのプレフィックスとして使用することは避けてください。これは Microsoft の使用のために予約されています。またmaster、MS が同じ名前の SP を導入した場合 (たとえば、サービス パック)、MS SP が「勝つ」でしょう。

しかし、この場合、Microsoft は既に"勝利" しています。Microsoft には というストアド プロシージャがあり、sp_adduser呼び出されているのはそのプロシージャです。ストアド プロシージャの名前を変更します。

于 2013-04-10T14:56:20.350 に答える