关于sql存储过程 有个系统存储过程 sp_tables 它可以显示当前数据库中所有表 我想让它只显示用户表或系统表怎么做呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select * from sysobjects where xtype=’u’这个是返回所有用户表 exec sp_tables @table_TYPE='''system table''' --系统表exec sp_tables @table_TYPE='''table''' --用户表 用sp_tables存储过程的话,设置一下最后一个参数EXEC sp_tables syscolumns, dbo, Company, "'SYSTEM TABLE'" 语法 sp_tables [ [ @table_name = ] 'name' ] [ , [ @table_owner = ] 'owner' ] [ , [ @table_qualifier = ] 'qualifier' ] [ , [ @table_type = ] "type" ] [ , [@fUsePattern = ] 'fUsePattern']; 参数[ @table_name =] 'name'用来返回目录信息的表。name 的数据类型为 nvarchar(384),默认值为 NULL。支持通配符模式匹配。[ @table_owner = ] 'owner'用于返回目录信息的表的所有者。owner 的数据类型为 nvarchar(384),默认值为 NULL。支持通配符模式匹配。如果未指定所有者,则遵循基础 DBMS 的默认表可见性规则。在 SQL Server 中,如果当前用户拥有一个具有指定名称的表,则返回该表的列。如果未指定所有者,且当前用户未拥有指定名称的表,则该过程查找由数据库所有者拥有的具有指定名称的表。如果有,则返回该表的列。[ @table_qualifier = ] 'qualifier'表限定符的名称。qualifier 的数据类型为 sysname,默认值为 NULL。多种 DBMS 产品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,此列表示数据库名称。在某些产品中,该列表示表所在数据库环境的服务器名。[ , [ @table_type = ] "'type', 'type'" ]由逗号分隔的值列表,该列表提供有关所有指定的表类型的表的信息。这些类型包括 TABLE、SYSTEMTABLE 和 VIEW。type 的数据类型为 varchar(100),默认值为 NULL。注意: 每个表类型都必须用单引号括起来,整个参数必须用双引号括起来。表类型必须大写。如果 SET QUOTED_IDENTIFIER 为 ON,则每个单引号必须换成双引号,整个参数必须用单引号括起来。 [ @fUsePattern =] 'fUsePattern'确定下划线 (_)、百分号 (%) 和方括号([ 或 ])是否解释为通配符。有效值为 0(模式匹配为关闭状态)和 1(模式匹配为打开状态)。fUsePattern 的数据类型为 bit,默认值为 1。返回代码值无结果集列名 数据类型 说明 TABLE_QUALIFIER sysname 表限定符名称。在 SQL Server 中,此列表示数据库名称。该字段可以为 NULL。 TABLE_OWNER sysname 表所有者名称。在 SQL Server 中,此列表示创建该表的数据库用户的名称。该字段始终返回值。 TABLE_NAME sysname 表名。该字段始终返回值。 TABLE_TYPE varchar(32) 表、系统表或视图。 REMARKS varchar(254) SQL Server 不为此列返回值。 备注为达到最大互操作性,网关客户端应假定只有 SQL-92 标准的 SQL 模式匹配(% 和 _ 通配符字符)。并不总是检查有关当前用户对特定表的读写权限的权限信息。因此,访问得不到保障。该结果集不仅包含表和视图,还包含网关的同名和别名,这些网关通往支持这些类型的 DBMS 产品。如果在 sp_server_info 的结果集中,服务器属性 ACCESSIBLE_TABLES 为 Y,则只返回当前用户可访问的表。sp_tables 等价于 ODBC 中的 SQLTables。返回的结果按 TABLE_TYPE、TABLE_QUALIFIER、TABLE_OWNER 和 TABLE_NAME 顺序排列。权限需要对架构的 SELECT 权限。示例A. 返回可在当前环境中查询的对象列表以下示例返回可在当前环境中查询的对象列表。 复制代码 EXEC sp_tables ; B. 返回有关 AdventureWorks 中的表的信息以下示例返回有关 AdventureWorks 数据库中的 Person 架构所拥有的表的信息。 复制代码 USE AdventureWorks;GOEXEC sp_tables @table_name = '%', @table_owner = 'Person', @table_qualifier = 'AdventureWorks'; --2000用户定义表EXEC sp_tables @table_type="'TABLE'"--2000系统表EXEC sp_tables @table_type="'SYSTEM TABLE'" 这个修改的SQL语句如何写? 有关两个数据库表查询的问题 数据库日期类型能不能插入空值 查询问题 请教一个sql sever 2000导出excel问题 求教SQL查询方法 sql:查询一张表中字段值不同的结果!!!!!!!!!!!!!!!!!!!!!!!!!! ?????????? 视图有什么用处啊?创建视图了以后怎么去用它呢? 关于行列转换的问题 不看不知道----一看吓一跳 求一SQL语句 大家看看有什么好办法简化一下这个SQL语句,谢谢
exec sp_tables @table_TYPE='''table''' --用户表
EXEC sp_tables syscolumns, dbo, Company, "'SYSTEM TABLE'"
sp_tables [ [ @table_name = ] 'name' ]
[ , [ @table_owner = ] 'owner' ]
[ , [ @table_qualifier = ] 'qualifier' ]
[ , [ @table_type = ] "type" ]
[ , [@fUsePattern = ] 'fUsePattern'];
参数
[ @table_name =] 'name'
用来返回目录信息的表。name 的数据类型为 nvarchar(384),默认值为 NULL。支持通配符模式匹配。[ @table_owner = ] 'owner'
用于返回目录信息的表的所有者。owner 的数据类型为 nvarchar(384),默认值为 NULL。支持通配符模式匹配。如果未指定所有者,则遵循基础 DBMS 的默认表可见性规则。在 SQL Server 中,如果当前用户拥有一个具有指定名称的表,则返回该表的列。如果未指定所有者,且当前用户未拥有指定名称的表,则该过程查找由数据库所有者拥有的具有指定名称的表。如果有,则返回该表的列。[ @table_qualifier = ] 'qualifier'
表限定符的名称。qualifier 的数据类型为 sysname,默认值为 NULL。多种 DBMS 产品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,此列表示数据库名称。在某些产品中,该列表示表所在数据库环境的服务器名。[ , [ @table_type = ] "'type', 'type'" ]
由逗号分隔的值列表,该列表提供有关所有指定的表类型的表的信息。这些类型包括 TABLE、SYSTEMTABLE 和 VIEW。type 的数据类型为 varchar(100),默认值为 NULL。注意:
每个表类型都必须用单引号括起来,整个参数必须用双引号括起来。表类型必须大写。如果 SET QUOTED_IDENTIFIER 为 ON,则每个单引号必须换成双引号,整个参数必须用单引号括起来。
[ @fUsePattern =] 'fUsePattern'
确定下划线 (_)、百分号 (%) 和方括号([ 或 ])是否解释为通配符。有效值为 0(模式匹配为关闭状态)和 1(模式匹配为打开状态)。fUsePattern 的数据类型为 bit,默认值为 1。返回代码值
无结果集
列名 数据类型 说明
TABLE_QUALIFIER
sysname
表限定符名称。在 SQL Server 中,此列表示数据库名称。该字段可以为 NULL。
TABLE_OWNER
sysname
表所有者名称。在 SQL Server 中,此列表示创建该表的数据库用户的名称。该字段始终返回值。
TABLE_NAME
sysname
表名。该字段始终返回值。
TABLE_TYPE
varchar(32)
表、系统表或视图。
REMARKS
varchar(254)
SQL Server 不为此列返回值。
备注
为达到最大互操作性,网关客户端应假定只有 SQL-92 标准的 SQL 模式匹配(% 和 _ 通配符字符)。并不总是检查有关当前用户对特定表的读写权限的权限信息。因此,访问得不到保障。该结果集不仅包含表和视图,还包含网关的同名和别名,这些网关通往支持这些类型的 DBMS 产品。如果在 sp_server_info 的结果集中,服务器属性 ACCESSIBLE_TABLES 为 Y,则只返回当前用户可访问的表。sp_tables 等价于 ODBC 中的 SQLTables。返回的结果按 TABLE_TYPE、TABLE_QUALIFIER、TABLE_OWNER 和 TABLE_NAME 顺序排列。权限
需要对架构的 SELECT 权限。示例
A. 返回可在当前环境中查询的对象列表
以下示例返回可在当前环境中查询的对象列表。 复制代码
EXEC sp_tables ;
B. 返回有关 AdventureWorks 中的表的信息
以下示例返回有关 AdventureWorks 数据库中的 Person 架构所拥有的表的信息。 复制代码
USE AdventureWorks;
GO
EXEC sp_tables
@table_name = '%',
@table_owner = 'Person',
@table_qualifier = 'AdventureWorks';
EXEC sp_tables @table_type="'TABLE'"--2000系统表
EXEC sp_tables @table_type="'SYSTEM TABLE'"