SqlServer中有一个命令sp_help'table_name'(table_name或其他东西)
当你不知道整个表名时,是否有可能使用它,使用通配符或类似的东西:
sp_help admin_ %
编辑:
运行sp_help (SELECT * FROM INFORMATION_SCHEMA.Tables WHERE TABLE_NAME like '%admin_%')
,但结果很奇怪......
答案 0 :(得分:3)
不,SP_HELP
需要一个完整的名称,因此请先使用它来查找表名:
SELECT
*
FROM INFORMATION_SCHEMA.Tables
WHERE TABLE_NAME like '%your table name guess here%'
然后您可以使用sp_help 'the_real_complete_name'
编辑基于OP的评论
您不需要记住查询,只需创建一个搜索对象名称的过程:
CREATE PROCEDURE [FO]
@SearchFor sysname=''
AS
SELECT
name,type_desc
FROM sys.objects
WHERE name like '%'+@SearchFor+'%'
ORDER BY type,name
GO
现在就像使用它一样:
fo 'xyz'
或
exec fo 'xyz'
查找具有匹配名称的所有对象。这些是可以找到的对象类型:
AGGREGATE_FUNCTION
CHECK_CONSTRAINT
DEFAULT_CONSTRAINT
FOREIGN_KEY_CONSTRAINT
PRIMARY_KEY_CONSTRAINT
SQL_STORED_PROCEDURE
CLR_STORED_PROCEDURE
SQL_SCALAR_FUNCTION
CLR_SCALAR_FUNCTION
CLR_TABLE_VALUED_FUNCTION
RULE
REPLICATION_FILTER_PROCEDURE
SYNONYM
SERVICE_QUEUE
CLR_TRIGGER
SQL_TRIGGER
SQL_INLINE_TABLE_VALUED_FUNCTION
SQL_TABLE_VALUED_FUNCTION
USER_TABLE
UNIQUE_CONSTRAINT
VIEW
EXTENDED_STORED_PROCEDURE
INTERNAL_TABLE
这不是主题,但您也可以使用以下方法搜索存储过程,触发器,视图或函数中的任何文本:
CREATE PROCEDURE [FT]
@Search varchar(255)
AS
SELECT DISTINCT
o.name,o.type_desc
FROM sys.sql_modules m
INNER JOIN sys.objects o ON m.object_id=o.object_id
WHERE m.definition Like '%'+@Search+'%'
ORDER BY type_desc
GO
就像使用它一样:
ft 'fkgjfg'
或
exec ft 'fkgjfg'
答案 1 :(得分:1)
以下查询将为您提供与您想要的名称匹配的表格列表。
select * from INFORMATION_SCHEMA.Tables
where TABLE_NAME like 'admin%'
然后,您可以对生成的表名执行sp_help
。
答案 2 :(得分:0)
doesn't look like it's meant to be used this way。我打赌这里的某个人会想出另一种方法!
答案 3 :(得分:0)
如果您尝试使用sp_help的功能实现特殊功能,则可以通过复制其源来创建自己的版本。 (sp_helptext sp_help
)