- ALTER PROCEDURE [dbo].[pUpdateSite]
- @ID BIGINT,
- @SiteName NVARCHAR(50),
- @SiteDesc NVARCHAR(500),
- @UpdateBy BIGINT,
- @C3Confirm BIT,
- @SSOUrl VARCHAR(255),
- @AuthConfirm BIT,
- @AuthUrl VARCHAR(255),
- @Remarks NVARCHAR(500)
- AS
- BEGIN
- SET NOCOUNT ON;
- DECLARE @Now DATETIME
- SET @Now=GETDATE()
- UPDATE tbSite SET SiteName=@SiteName,SiteDesc=@SiteDesc,UpdateBy=@UpdateBy,UpdateDate=@Now,C3Confirm=@C3Confirm,SSOUrl=@SSOUrl,AuthConfirm=@AuthConfirm,AuthUrl=@AuthUrl,Remarks=@Remarks WHERE ID=@ID
- END
Kopēt kodu Šī ir mana sākotnējā saglabātā procedūra, kur jābūt 2 laukiem tukšiem, vai nu c3confirm un ssourl ir tukši, vai authconfirm un authurl ir tukši,
Tātad, es izmantoju .net, lai izpildītu saglabāto procedūru, bet tas vienmēr bija nenormāli, un es nevarēju atrast risinājumu no interneta, es redzēju, ka SQL paziņojums, ko .net beidzot izpildīja, bija:
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= N'Uzvarēt vairāk un zaudēt mazāk" Visbeidzot, mans draugs man teica, ka nulles vērtībai jāpiešķir noklusējuma vērtība, tāpēc es to modificēju uz šādu kodu, un tad tas bija normāli.
- ALTER PROCEDURE [dbo].[pUpdateSite]
- @ID BIGINT,
- @SiteName NVARCHAR(50),
- @SiteDesc NVARCHAR(500),
- @UpdateBy BIGINT,
- @C3Confirm BIT=NULL,
- @SSOUrl VARCHAR(255)=NULL,
- @AuthConfirm BIT=NULL,
- @AuthUrl VARCHAR(255)=NULL,
- @Remarks NVARCHAR(500)=NULL
- AS
- BEGIN
- SET NOCOUNT ON;
- DECLARE @Now DATETIME
- SET @Now=GETDATE()
- UPDATE tbSite SET SiteName=@SiteName,SiteDesc=@SiteDesc,UpdateBy=@UpdateBy,UpdateDate=@Now,C3Confirm=@C3Confirm,SSOUrl=@SSOUrl,AuthConfirm=@AuthConfirm,AuthUrl=@AuthUrl,Remarks=@Remarks WHERE ID=@ID
- END
Kopēt kodu
|