데이터베이스를 프로그래밍 방식으로 정리하기 위해 하나의 작은 저장 프로 시저를 작성하려고합니다. 이를 위해 저장 프로 시저의 구문 오류
,먼저, 내가 포기하고 모든 외부 키 제약
둘째, 내가 포기하고 모든 기본 키 제약,
셋째, 모든 테이블을 삭제합니다.
나는 (세 번째 단계는 아직 시작되지 않음) 세 위의 단계를 수행하려면 다음과 같은 코드를 작성했습니다
CREATE PROCEDURE usp_CleanupDB AS
BEGIN
--Begin: Code to drop FOREIGN KEY CONSTRAINTS in the database
DECLARE @ForeignKeyConstraint AS VARCHAR(100)
DECLARE @ForeignKeyContainedTableName AS VARCHAR(100)
DECLARE @ForeignKeyConstraintsTableCursor AS CURSOR
SET @ForeignKeyConstraintsTableCursor = CURSOR FOR
SELECT ForeignKeyName, TableName FROM dbo.GetDBForeignKeyConstraints()
OPEN @ForeignKeyConstraintsTableCursor
FETCH NEXT FROM @ForeignKeyConstraintsTableCursor INTO @ForeignKeyConstraint, @ForeignKeyContainedTableName
WHILE @@FETCH_STATUS = 0
BEGIN
--Drop FOREIGN KEY Constraint
ALTER TABLE @ForeignKeyContainedTableName DROP CONSTRAINT @ForeignKeyConstraint
FETCH NEXT FROM @ForeignKeyConstraintsTableCursor into @ForeignKeyConstraint, @ForeignKeyContainedTableName
END
CLOSE @ForeignKeyConstraintsTableCursor
DEALLOCATE @ForeignKeyConstraintsTableCursor
--End: Code to drop FOREIGN KEY CONSTRAINTS in the database
--Begin: Code to drop PRIMARY KEY CONSTRAINTS in the database
DECLARE @PrimaryKeyConstraint AS VARCHAR(100)
DECLARE @PrimaryKeyContainedTableName AS VARCHAR(100)
DECLARE @PrimaryKeyConstraintsTableCursor AS CURSOR
SET @PrimaryKeyConstraintsTableCursor = CURSOR FOR
SELECT PrimaryKeyName, TableName FROM dbo.GetDBPrimaryKeyConstraints()
OPEN @PrimaryKeyConstraintsTableCursor
FETCH NEXT FROM @PrimaryKeyConstraintsTableCursor INTO @PrimaryKeyConstraint, @PrimaryKeyContainedTableName
WHILE @@FETCH_STATUS = 0
BEGIN
--Drop PRIMARY KEY Constraint
ALTER TABLE @PrimaryKeyContainedTableName DROP CONSTRAINT @PrimaryKeyConstraint
FETCH NEXT FROM @PrimaryKeyConstraintsTableCursor INTO @PrimaryKeyConstraint, @PrimaryKeyContainedTableName
END
--End: Code to drop PRIMARY KEY CONSTRAINTS in the database
END
나는 다음과 같은 오류가 점점 오전 :
Msg 102, Level 15, State 1, Procedure usp_CleanupDB, Line 15
Incorrect syntax near '@ForeignKeyContainedTableName'.
Msg 102, Level 15, State 1, Procedure usp_CleanupDB, Line 33
Incorrect syntax near '@PrimaryKeyContainedTableName'.
수 누군가하시기 바랍니다 문제를 해결하는 방법을 알려주시겠습니까?