2012-04-06 4 views
0

이 절차를 실행하려고하면 오류가 발생합니다. 것은 내가 조금이라도 변환하려고하지 않고있다. 최소한의 목적은 아닙니다. 나는 지금 약간 비틀 거리고있다.SQL varchar to bit 오류

Declare @AValue varchar(max) 
set @AValue = (SELECT Value 
     FROM dbo.Tbl 
     WHERE [email protected] 
      AND Value LIKE (CAST(@MODID as varchar(15))+'|%')) 
set @AValue = PARSENAME(REPLACE(@AValue, '|', '.'), 1) -- Hack way to parse. 

INSERT INTO dbo.Tbl 
(
    Name, 
    Value, 
    Type, 
    CDT, 
    UDT, 
    Active, 
    User 
) 
VALUES 
(
    'Agreement', 
    (CAST(@MODID AS varchar(15)) + '|' + @AValue), 
    'Download', 
    GETDATE(), 
    GETDATE(), 
    1, 
    @USER 
) 
+2

** ** 데이터베이스 시스템 및 버전은 무엇입니까 ?? ** SQL **은 많은 데이터베이스 시스템에서 사용되는 언어 인 구조화 된 쿼리 언어입니다 - SQL은 ** 데이터베이스 제품이 아닙니다 ** 이러한 제품은 벤더에 따라 매우 다양합니다. .... 사용중인 데이터베이스 시스템 .... –

+1

실제 오류 메시지는 매우 중요합니다. – JNK

+0

'CAST'와'GETDATE'에 의한 @marc_s 나는 SS를 추측하고있다. – JNK

답변

0

죄송합니다. 답변을 찾았습니다. 나는 오늘 되돌아 왔고 내가 얻고있는 오류는 내가 처음 질문했을 때 가진 오류와 완전히 달랐다. 죄송합니다 그 오류를 쓰는 것을 잊었습니다.

문제는 WHERE 절이 내가 많은 테스트를했기 때문에 데이터베이스에서 여러 개의 리턴을 얻었 기 때문에 중복 된 행이 있기 때문입니다.

-3

GetDate를 삽입하기 전에 T-SQL의 항목에 할당해야합니다.

이 시도 : 테이블에

DECLARE @CDT DateTime 
DECLARE @UDT DateTime 
SELECT @CDT = GetDate() 
SELECT @UDT = GetDate() 

INSERT INTO dbo.Tbl 
( 
    [Name], 
    [Value], 
    [Type], 
    CDT, 
    UDT, 
    Active, 
    User 
) 
VALUES 
( 
    'Agreement', 
    (CAST(@MODID AS varchar(15)) + '|' + @AValue), 
    'Download', 
    @CDT, 
    @UDT, 
    1, 
    @USER 
) 
+2

-1 : 그건 전혀 사실이 아니야 ... –

2

확인 트리거, 특히 삽입. 설명 할 수없는 오류가 많으면 거기에 숨어있을 수 있습니다.

0

오류 게시, CREATE PROCEDURE 문 및 가장 중요한 것은 실패한 프로 시저에 대한 호출입니다. 또한 어떤 버전의 SQL Server를 사용하고 있습니까?

대부분의 경우 저장된 프로 시저에는 BIT 유형의 매개 변수가 있으며 'F', '-1'또는 BIT로 변환 할 수없는 다른 문자열과 같은 값으로 프로 시저를 호출하고 있습니다.

+0

이것은 더 적절한 코멘트가 아니겠습니까? –

+0

나는 그렇게 생각하지 않는다. "저장된 proc에는 BIT 유형의 매개 변수가 있으며 'F', '-1'또는 BIT로 변환 할 수없는 다른 문자열과 같은 값으로 프로 시저를 호출합니다." 의견으로보다는 답변으로 적합합니다. 물론 잘못된 것일 수도 있지만 코멘트가 아닙니다. –