Sql server SQL-语法不正确,需要ID或引用的ID

Sql server SQL-语法不正确,需要ID或引用的ID,sql-server,tsql,dynamic-sql,Sql Server,Tsql,Dynamic Sql,我是SQL新手,正在尝试从表中删除约束 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_mac

我是SQL新手,正在尝试从表中删除约束

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
将为我提供要删除的约束的值。任何帮助都将不胜感激

多亏了伊利亚·布尔索夫的评论,我发现这个解决方案是可行的

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)

多亏了伊利亚·布尔索夫的评论,我发现这个解决方案是可行的

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)

谢谢,这帮我解决了问题!谢谢,这帮我解决了问题!