2017-07-18 91 views
0

私はSQLを初めて使用しており、テーブルから制約を削除しようとしています。SQL - IDまたはQUOTED_IDが期待されない構文が正しくありません

DECLARE @constraintName nvarchar(100) 

set @constraintName = (SELECT OBJECT_NAME(OBJECT_ID) AS NameofConstraint 
FROM sys.objects 
WHERE type_desc LIKE '%DEFAULT_CONSTRAINT' AND parent_object_id = OBJECT_ID('dbo.regression_pool_machine')) 

ALTER TABLE dbo.regression_pool_machine DROP CONSTRAINT @constraintName 

最後に@constraintNameを使用すると、上記のエラーが表示されます。 @constraintNameを印刷すると、削除したい制約の値がわかります。どんな助けもありがとう。

+2

https://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/ –

+0

ありがとう、これは私の問題を解決するのに役立ちました! –

答えて

0

おかげIllya Bursovさんのコメントに、私はこのソリューションが動作することがわかっ

DECLARE @constraintName nvarchar(100) 
    DECLARE @sqlCommand varchar(1000) 
    set @constraintName = (SELECT OBJECT_NAME(OBJECT_ID) AS NameofConstraint 
    FROM sys.objects 
    WHERE type_desc LIKE '%DEFAULT_CONSTRAINT' AND parent_object_id = OBJECT_ID('dbo.regression_pool_machine')) 
    SET @sqlCommand = 'ALTER TABLE dbo.regression_pool_machine DROP CONSTRAINT ' + @constraintName 
    EXEC (@sqlCommand) 
関連する問題