有SQLServer中sp_help將「表名」(表名或其他東西)的sp_help使用通配符
有沒有使用它,當你不知道整個表名,使用通配符或類似這樣的東西可能命令:
sp_help將ADMIN_ %
編輯:
運行sp_help (SELECT * FROM INFORMATION_SCHEMA.Tables WHERE TABLE_NAME like '%admin_%')
,但有一個奇怪的結果......
有SQLServer中sp_help將「表名」(表名或其他東西)的sp_help使用通配符
有沒有使用它,當你不知道整個表名,使用通配符或類似這樣的東西可能命令:
sp_help將ADMIN_ %
編輯:
運行sp_help (SELECT * FROM INFORMATION_SCHEMA.Tables WHERE TABLE_NAME like '%admin_%')
,但有一個奇怪的結果......
沒有,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 '%'[email protected]+'%'
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 '%'[email protected]+'%'
ORDER BY type_desc
GO
只是用它喜歡:
ft 'fkgjfg'
或
exec ft 'fkgjfg'
It doesn't look like it's meant to be used this way。我敢打賭,這裏有人會想出另一種方式!
以下查詢將爲您提供與您想要的名稱匹配的表的列表。
select * from INFORMATION_SCHEMA.Tables
where TABLE_NAME like 'admin%'
然後,您可以對生成的表名執行sp_help
。
如果您嘗試使用sp_help的功能實現一些特殊功能,您可以通過複製它的源代碼來創建自己的版本。 (sp_helptext sp_help
)
是的。這有助於,有點長,應該記住。 – serhio 2010-04-16 14:28:18