注:sp_columns为SQL自带存储过程
(1)
例如我想得到authors表中各列的定义:
use pubs
exec sp_columns 'authors' --返回这个表各列定义的一些记录集.
我想直接用SELECT语句使用存储过程的记录集.但是这样写是错误的:
SELECT top 10 * FROM ( exec sp_columns 'authors' )
当然,如果我预先定义一个表TableColumns,那么如下写是可以的:
INSERT TableColumns
exec sp_columns 'authors'
(2)syscolumns为数据表字段内容 sysobjects为数据表内容
直接用SELECT语句吗?如果行,如何写?谢谢!
回复(1):
select top 10 a.* from syscolumns a join sysobjects b on a.id=b.id
where b.name='authors'
回复(2):
回复:如何使用SELECT处理存储过程返回的记录集
select *
FROM OPENROWSET('SQLOLEDB','SQLServerName;'sa';'',
'sp_lock')
select *
FROM OPENROWSET('SQLOLEDB','SQLServerName;'sa';'',
'exec sp_columns ''authors'' ')
select *
FROM OPENROWSET('SQLOLEDB','SQLServerName;'sa';'',
'sp_columns ''authors'' ')