SQL Server使用架构无法正常工作创建用户定义的表类型
发布时间:2021-02-28 18:48:23 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用以下语句在SQL Server 2008R2 / 2012上创建用户定义的表类型: CREATE TYPE [MySchemaName].[MyUserTableType] As Table ( [Id] varchar(20) NOT NULL ); 这按预期工作. 我还有一个存储过程,它删除给定Schema的所有相关对象. 这是我的用户定义的表
我正在使用以下语句在SQL Server 2008R2 / 2012上创建用户定义的表类型: CREATE TYPE [MySchemaName].[MyUserTableType] As Table ( [Id] varchar(20) NOT NULL ); 这按预期工作. 我还有一个存储过程,它删除给定Schema的所有相关对象. 如果我尝试删除架构,它会抱怨架构与我的用户定义表类型相关联.因此它不会被删除. 但是,如果我查询我的数据库中TYPE_TABLE的所有对象,它告诉我我的表类型不属于我的模式.它们属于模式’sys’ SELECT name,schema_id,type_desc FROM [TESTDB].SYS.OBJECTS WHERE type_desc = 'TYPE_TABLE'; SELECT * FROM sys.schemas; 知道为什么吗? 这是我输出的截图 解决方法您应该查看sys.types或sys.table_types(它还会公开type_table_object_id),而不是在sys.objects中查找这些内容.SELECT name,schema_id /*Will be the "test" schema id*/ FROM sys.types WHERE is_table_type = 1 AND name = 'MyUserTableType' 创建用户定义类型时,它会向sys.sysscalartypes添加一行,其中包含用户提供的模式和名称,以及sys.sysschobjs中的一行,并在sys模式中使用系统生成的名称.系统生成的名称是通过连接对象ID的TT_ FriendlyName _ Hex版本创建的. 这两个实体通过sys.syssingleobjrefs相互关联 /*This query only works via the DAC*/ SELECT so.id AS object_id,st.id AS user_type_id,* FROM sys.sysschobjs so JOIN sys.syssingleobjrefs sor ON sor.indepid = so.id JOIN sys.sysscalartypes st ON st.id = sor.depid WHERE st.name = 'MyUserTableType' (编辑:应用网_常德站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 索引不会使执行更快,并且在某些情况下会降低
- sql-server – SQL Server ROWLOCK over SELECT如果不存在I
- sql-server – 在仅使用文字值的WHERE子句中替换ISNULL()的
- sql自定义函数有何用处?与存储过程区别在哪?
- 执行sp_executeSql以选择…到#table但不能选择临时表数据
- sql-server – 使用动态sql在指定数据库中创建View?
- 如何为下面给出的查询编写等效的SQL case语句?
- sql-server – SQL Server使用与定义不匹配的数据填充PERSI
- sql-server – SQL表大小和查询性能
- html实现a元素href的URL链接自动刷新或新窗口打开功能
站长推荐
- sql-server – 数据库对象的版本控制
- sql-server – 与varchar(255)相比,使用varchar(
- sql – 搜索数字是否包含在表达式中:1-3,5,10-1
- .net – 如何在WPF DataGrid中定义自己的列?
- sqlserver合并DataTable并排除重复数据的通用方法
- sql-server-2008 – SQL Server合并复制的限制 –
- SQL – 将多行数据转换为单行
- .net – 为什么这个DataAdapter不会将行插入数据
- sql-server-2008 – 将数据库从SQL Server 2000复
- 数据库 – 为什么他们使用DBMS_STATS.GATHER_TAB
热点阅读