您的位置:首页 > 数据库

数据库视图+如何删除没有主键约束名的约束。

2017-12-01 17:16 363 查看
create view view_user as 

 

 select id, name from [user].[dbo].[course]

  go

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  drop view view_user

  

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    select * from view_user where view_user.id=5;

从[user].[dbo].[course]中找到 id, name 然后调用的时候从view_user 视图中找到视图中某列的数据。

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Select * from SYS.objects

declare @name sysname;

declare @TB_NAME sysname

set @TB_NAME='course'//表名

SELECT TOP 1 @NAME = NAME FROM SYS.OBJECTS WITH(NOLOCK)

WHERE TYPE_DESC ='PRIMARY_KEY_CONSTRAINT'

AND PARENT_OBJECT_ID = (SELECT OBJECT_ID

FROM SYS.OBJECTS WITH(NOLOCK)  WHERE NAME = @TB_NAME )

根据表名查到表名的id然后根据type_DESC为'PRIMARY_KEY_CONSTRAINT'和父id为表id查到约束名。

SELECT @NAME
DECLARE @ALTERSQL NVARCHAR(MAX)
SET @ALTERSQL=N'ALTER TABLE '+@TB_NAME+'

DROP CONSTRAINT '+@NAME+"
EXEC SP_EXECUTESQL @ALTERSQL
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐