- 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
Αντιγραφή κώδικα Αυτή είναι η αρχική μου αποθηκευμένη διαδικασία, όπου πρέπει να υπάρχουν 2 πεδία κενά, είτε το c3confirm και το ssourl είναι κενά, είτε το authconfirm και το authurl είναι κενά,
Έτσι, χρησιμοποίησα το .net για να εκτελέσω την αποθηκευμένη διαδικασία, αλλά ήταν πάντα ανώμαλο και δεν μπορούσα να βρω λύση από το Διαδίκτυο, είδα ότι η δήλωση SQL που τελικά εκτέλεσε το .net ήταν:
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= Να κερδίζεις περισσότερα και να χάνεις λιγότερα» Τελικά, ο φίλος μου μου είπε ότι η μηδενική τιμή θα έπρεπε να έχει μια προεπιλεγμένη τιμή, οπότε την τροποποίησα στον παρακάτω κώδικα και μετά ήταν φυσιολογικό.
- 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
Αντιγραφή κώδικα
|