최근에 SQL을 처음으로 살펴보고 도움을 요청할 수있는 문제가 발생하여 두 SQL 서버 모두 Microsoft SQL Server 2008 및 서버 A는 서버 B에 연결된 서버가 있습니다.어포 스트로피를 더블 아포스트로피로 바꾸기
트리거가 존재하여 서버 A에서 서버 B 로의 삽입시 데이터를 전달하는 저장 프로 시저에 데이터를 보내고이 데이터의 이름이 문제가됩니다. 오닐 (O'Neil)과 같은 이름은 아포스트로피로 인해 실패하고 있으며, 데이터를 수확하는 것이 '삽입 된'테이블에서만 사용 가능할 때 아포스트로피를 이중 어포 스트로피로 바꾸는 방법을 알지 못합니다.
가 가SELECT @PassengerName=PassengerName, @DocumentType=DocumentType, @BoardingSequenceNumber=BoardingSequenceNumber,
@FlightNumber=FlightNumber, @CarrierCode=CarrierCode, @DepartureTime=DepartureTime, @Destination=Destination, @DeviceAddress=DeviceAddress,
@Timestamp="Timestamp", @WorkstationId=WorkstationId, @DeliveredTimeStamp=DeliveredTimeStamp from inserted;
SELECT @cmd = 'sqlcmd -S '[email protected]@SERVERNAME+' -E -d '+DB_NAME()+' -Q "exec SP_transfer @PassengerName='''[email protected]+''',@DocumentType='[email protected]+
',@BoardingSequenceNumber='+cast(@BoardingSequenceNumber as varchar(20))+
',@FlightNumber='[email protected]+',@CarrierCode='[email protected]+
',@DepartureTime='''+cast(@DepartureTime as varchar(20))+''',@Destination='[email protected]+
',@DeviceAddress='[email protected]+''',@TimeStamp='+cast(@Timestamp as varchar(32))+
''',@WorkstationId='[email protected]+',@DeliveredTimeStamp='''+cast(@DeliveredTimeStamp as varchar(50))+'''"';
이
어떻게 내가 passengername 열이 트리거를 깨는없이 아포스트로피를 대체 그것은 있도록 만들하지만 화재 시도하기 전에 수 다음과 같이
내 트리거는 무엇입니까? 나는이 질문은 바보 같은 것 같으면 appologies,하지만 난이 작업 라인에 아주 새로운 메신저,
이 시간 내 주셔서 감사합니다,크레이그
직접 proc ['SP_ExecuteSQL'] (http://technet.microsoft.com/en-us/library/ms188001.aspx)를 사용하여 값을 직접 이스케이프 처리하지 말고 매시 그들을 문자열로. – Bridge