alter table 命令帮助!
请问 alter table 中我想删除一个默认值的约束
我用ALTER TABLE tbl_preconcertdetail DROP CONSTRAINT 约束名
但是如果约束名必须是我写的脚本查询出来的话,该怎么写呢?(因为每个客户的约束名我都是让她随机产生的)
一下我写的代码有错:
declare @dname sysname --定义变量,存放约束名,可以正常运行
set @dname= (select SysObjects.name from
(select SysColumns.id from SysColumns,SysObjects where SysColumns.name = 'autonumber ' and SysColumns.id=SysObjects.id and SysObjects.name= 'tbl_preconcertdetail ') as sys1,SysObjects
where sys1.id=SysObjects.parent_obj and SysObjects.type= 'D ')
--查询出某表某列相应的约束名 如:DF__tbl_preco__auton__29572725可以正常运行
ALTER TABLE tbl_preconcertdetail DROP CONSTRAINT @dname
--但是这据说我语法错误,请帮我。
谢谢
------解决方案--------------------ALTER TABLE tbl_preconcertdetail DROP CONSTRAINT @dname
-->
exec( '
ALTER TABLE tbl_preconcertdetail DROP CONSTRAINT '+@dname
)
------解决方案--------------------declare @s varchar(1000)
set @s= 'ALTER TABLE tbl_preconcertdetail DROP CONSTRAINT @dname '
EXEC(@s)
------解决方案--------------------exec ( 'ALTER TABLE tbl_preconcertdetail DROP CONSTRAINT ' +@dname)
这样执行试试...