0
.net에서 저장 프로 시저에 ID 값을 삽입하려고하는데 ID의 int 값이 저장 프로 시저에 음수 값을 삽입하고 있습니다.저장 프로 시저에 음수 값 전달
그러나 음수 값이 전달되면 '*'근처에서 잘못된 구문 오류가 발생합니다.
도와주세요. 나는 오류가 발생하고 다음과 같이 내가 코드를 실행하고 때
은 여기 내 저장 프로 시저
ALTER PROCEDURE [dbo].[HotlinePlusAdministration_ArticleMigrator]
@Id AS INT,
[email protected] AS INT,
[email protected] AS Varchar(200),
[email protected] AS datetime,
@DestLinkServer AS VARCHAR(50),
@UserID AS VARCHAR(8),
@ReturnMsg AS VARCHAR(1000) OUTPUT
AS
BEGIN
DECLARE @Query AS NVARCHAR(4000)
DECLARE @Log AS VARCHAR(8000)
DECLARE @ArticleID as int
DECLARE @NewArticleID as int
DECLARE @ArticleKeyExists as int
DECLARE @Title as varchar(200)
DECLARE @CategoryID as INT
DECLARE @ArticleDate as varchar(30)
DECLARE @ParmDefinition nvarchar(500);
SET XACT_ABORT ON -- Required for nested transaction
BEGIN TRAN
-- Check if ArticleID exists in Destination Server
SET @Query = N' SELECT @ArticleKeyExists = COUNT(*)
FROM ' + @DestLinkServer + '.HL2_61.dbo.Article' + ' where ArticleKey = ' + str(@Id)
SET @ParmDefinition = N' @ID int, @ArticleKeyExists int OUTPUT';
EXECUTE sp_executesql @Query , @ParmDefinition, @ID, @ArticleKeyExists OUTPUT;
--EXECUTE sp_executesql 1234,'BRHLSQL8','BRWSQLDC',@return = retnmsg
IF @@ERROR <> 0
BEGIN
ROLLBACK TRANSACTION
SET @ReturnMsg = @Log + '<span style="color:red;">ERROR: <br></span>'
RETURN -1
END
--Delete existing Articles for select page
set @Query = 'DELETE FROM ' + @DestLinkServer +
'.HL2_61.dbo.Article ' +
'WHERE ArticleKey = ' + CONVERT(VARCHAR, @Id)
--'WHERE CategoryID = ' + CONVERT(VARCHAR, @CategoryID) + ' and Title = ''' + @Title + ''' and ArticleDate = ''' + @ArticleDate + ''''
Print @Query
EXEC(@Query)
입니다.
CONVERT(VARCHAR(50), @Id)
이 시도
: 당신이 int
varchar
A를 변환
DECLARE @return_value int,
@ReturnMsg varchar(1000)
EXEC @return_value = [dbo].[Migrator]
@Id = -1591276581,
@DestLinkServer = N'SQLDC',
@UserID = N'10c1',
@ReturnMsg = @ReturnMsg OUTPUT
SELECT @ReturnMsg as N'@ReturnMsg'
SELECT 'Return Value' = @return_value
GO
누군가가 제발 도와주세요 ..
감사
긴 코드입니다. 3 줄로 줄여보십시오. 나는 그런 식으로 오류를 직접 발견 할 것입니다. – usr
나는 Sprocedure를 조각으로 실행하는 것에 지쳤으며, 나는 그 오류를 얻고 있음을 발견했다. 하지만 문제는 내가 오류없이 음수 값을 전달하기 위해 무엇을해야하는지 전혀 모른다는 것입니다. – user1005479