Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 10992|Odpowiedź: 1

[Źródło] O wykonaniu .net procedura przechowywana null automatycznie staje się domyślną metodą obsługi wyjątków

[Skopiuj link]
Opublikowano 09.11.2015 16:28:20 | | |
  1. ALTER PROCEDURE [dbo].[pUpdateSite]
  2.         @ID BIGINT,
  3.         @SiteName NVARCHAR(50),
  4.         @SiteDesc NVARCHAR(500),
  5.         @UpdateBy BIGINT,
  6.         @C3Confirm BIT,
  7.         @SSOUrl VARCHAR(255),
  8.         @AuthConfirm BIT,
  9.         @AuthUrl VARCHAR(255),
  10.         @Remarks NVARCHAR(500)
  11. AS
  12. BEGIN
  13.         SET NOCOUNT ON;
  14.         DECLARE @Now DATETIME
  15.         SET @Now=GETDATE()
  16.         UPDATE tbSite SET SiteName=@SiteName,SiteDesc=@SiteDesc,UpdateBy=@UpdateBy,UpdateDate=@Now,C3Confirm=@C3Confirm,SSOUrl=@SSOUrl,AuthConfirm=@AuthConfirm,AuthUrl=@AuthUrl,Remarks=@Remarks WHERE ID=@ID
  17. END
Skopiuj kod
To moja oryginalna procedura przechowywana, gdzie muszą być 2 pola puste: albo c3confirm i ssourl są puste, albo authconfirm i authurl są puste,

Użyłem więc .net do wykonania procedury zapisanej, ale zawsze było to nienormalne i nie mogłem znaleźć rozwiązania w Internecie. Zobaczyłem, że instrukcja SQL, którą w końcu wykonał .net, brzmiała:

exec pUpdateSite @ID=20,@SiteName=N'ohoh',@SiteDesc=N'wait',@UpdateBy=1,@C3Confirm=default,@SSOUrl=default,@AuthConfirm=1,@AuthUrl=N'http://www.baidu.com',@Remarks= Nie wygrywaj więcej i mniej przegrywaj
W końcu mój przyjaciel powiedział mi, że wartość null powinna być przypisana jako domyślna, więc zmodyfikowałem ją na następujący kod i wtedy było normalnie.

  1. ALTER PROCEDURE [dbo].[pUpdateSite]
  2.         @ID BIGINT,
  3.         @SiteName NVARCHAR(50),
  4.         @SiteDesc NVARCHAR(500),
  5.         @UpdateBy BIGINT,
  6.         @C3Confirm BIT=NULL,
  7.         @SSOUrl VARCHAR(255)=NULL,
  8.         @AuthConfirm BIT=NULL,
  9.         @AuthUrl VARCHAR(255)=NULL,
  10.         @Remarks NVARCHAR(500)=NULL
  11. AS
  12. BEGIN
  13.         SET NOCOUNT ON;
  14.         DECLARE @Now DATETIME
  15.         SET @Now=GETDATE()
  16.         UPDATE tbSite SET SiteName=@SiteName,SiteDesc=@SiteDesc,UpdateBy=@UpdateBy,UpdateDate=@Now,C3Confirm=@C3Confirm,SSOUrl=@SSOUrl,AuthConfirm=@AuthConfirm,AuthUrl=@AuthUrl,Remarks=@Remarks WHERE ID=@ID
  17. END
Skopiuj kod






Poprzedni:Ustawienie modalne Bootstrap nie buforuje danych
Następny:Adres pobrania Visual Studio 2015
Opublikowano 10.11.2015 14:31:22 |
Są przykłady procedur przechowywanych, w porządku, poszukam w Internecie
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com