그래서 이것은 프로 시저에 대해 충분히 알지 못하는 문제 일지 모르지만 최근에 일하는 정규적인 사건이므로 테이블의 Column을 업데이트하여 프로 시저를 만들려고합니다.테이블 변수 "@ 테이블"을 선언해야합니까?
우리는 이전 시스템에서 새 시스템으로의 전환 단계에 있기 때문에 이것은 함께 새 데이터베이스를 만들었 기 때문입니다. 이전 데이터베이스에서는 nvarchar nchar을 사용 했으므로 문자에 대해 모든 슬롯을 사용하지 않아도 나머지 슬롯에는 공백이 채워집니다. 새 데이터베이스에서는 varchar를 사용하기 때문에 공백을 없애고 싶습니다!
그래서이 아주 편리합니다 :
USE omitted
GO
CREATE PROCEDURE TrimTrailingSpaces
@table VARCHAR(50),
@column VARCHAR(50)
AS
BEGIN
UPDATE @table
SET
@column = LTRIM(RTRIM(@column));
END
GO
하지만 시도 언제 우리가 한 동안 한 번 사용할 필요로
UPDATE table SET column = LTRIM(RTRIM(column));
그래서 나는 그것의 프로 시저를 만들려고 이것을 실행하십시오. 오류가 발생합니다 :
Msg 1087, Level 16, State 1, Procedure TrimTrailingSpaces, Line 6 [Batch Start Line 2]: Must declare the table variable "@table".
내가 뭘하고 있는거야?
저장 프로 시저를 어떻게 실행합니까? – rbr94
@MitchWheat 글쎄 왜 우리가 그 공백을 추가하지 않을 때 데이터베이스가 공백을 일관되게 가지고 있는지 설명하십시오. – OmniOwl
@ rbr94 쿼리에서 볼 수 있듯이 나는 단순히 프로 시저를 만들려고 노력하고 있으며, 그렇게하지 않을 것입니다. – OmniOwl