0
"사용자"가 지정하는 테이블에 열을 추가 할 수 있어야합니다. 따라서 테이블 이름을 동적으로 저장 프로 시저에 전달하는 것이 어떤 결과인지 궁금합니다. 아래는 내가 얻었지만 다음에 어디로 가야할지 모르겠다. 궁극적으로 사용자는 테이블 이름과 "정리"해야 할 다양한 열을 지정합니다. 이렇게하려면 테이블에 새 열을 추가하여 작업을 수행하고 싶습니다.SQL Server : 저장 프로 시저의 매개 변수로 테이블 이름
USE *******
GO
CREATE PROCEDURE [dbo].[MS_FormatSectionData](
@SectionCol varchar(50),
@TwpCol varchar(50),
@TWPDirCol varchar(50),
@RangeCol varchar(50),
@RangeDirCol varchar(50),
@ST_CodeCol varchar(50),
@Cnty_CodeCol varchar(50),
@Mer_CodeCol varchar(50),
@Stg_DB varchar(50),
@Tbl_Name varchar(50)
)
AS
BEGIN TRY
DECLARE @sql_AddStgCol VARCHAR(500)
SET @sql_AddStgCol = 'ALTER TABLE' + @Tbl_Name + 'ADD stgSection VARCHAR(3), stgTownship VARCHAR(3),
stgTownshipDir VARCHAR(1), stgRange VARCHAR(3), stgRangeDir VARCHAR(1), stgSt_Code VARCHAR(2), stgCnty_Code VARCHAR(3),
stgMer_Code VARCHAR(3)'
EXEC(@sql_AddStgCol)
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
END CATCH
GO
'alter table'에서'alter table'과''add'''''ADD'' 사이에 공백이 생기면'alter tablesomenameadd'가 생깁니다. DB engine parser는 공백이 필요합니다 !! !! – xQbert