meh*_*tfi 19 sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012
在简单数据库中使用数据库图时,SQL Server在Table\Systam Tables
节点中创建一个dbo.sysdiagrams表(在Microsoft management studio\object explorer中).但sysdiagrams表在SQL Server中标记为用户表.您可以通过以下查询获取用户表.
SELECT *
FROM sys.tables t
WHERE OBJECTPROPERTY(t.object_id,'IsUserTable') = 1
Run Code Online (Sandbox Code Playgroud)
我不知道sysdiagram表是系统表还是用户表.
存在microsoft_database_tools_support
的值1
在sysdiagram的扩展属性中,它确定自动创建的表.
小智 13
Management Studio在确定"系统对象"时使用以下内容,其中"tbl"是sys.tables:
CAST(
case
when tbl.is_ms_shipped = 1 then 1
when (
select
major_id
from
sys.extended_properties
where
major_id = tbl.object_id and
minor_id = 0 and
class = 1 and
name = N'microsoft_database_tools_support')
is not null then 1
else 0
end
AS bit) AS [IsSystemObject]
Run Code Online (Sandbox Code Playgroud)
系统表由SQL Server在内部使用,它们在每个用户数据库中都是相同的.
从服务器的角度来看,sysdiagrams不是系统表.
但SQL Server Management Studio创建它以存储图表数据,因此它还将其分类为系统表.
您可以使用您提到的扩展属性排除此类系统表.
归档时间: |
|
查看次数: |
17335 次 |
最近记录: |