首先说明,我使用的是dbExpress。
我想调用sp_helpindex来查看一个表的索引信息。
由于这个是系统存储过程,保存在master数据库中,所以通过TSQLStoredProc并不能直接使用这个存储过程。那么如何在不新增存储过程的情况下调用它呢?
我想调用sp_helpindex来查看一个表的索引信息。
由于这个是系统存储过程,保存在master数据库中,所以通过TSQLStoredProc并不能直接使用这个存储过程。那么如何在不新增存储过程的情况下调用它呢?
exec master..sp_helpindex
我试了不正确,提示我指定的表在master中不存在。
你在查询分析器里 运行exec master..sp_helpindex 就是调用 系统存储过程 sp_helpindex
如果想在程序里面 调用就这样with SQLQuery do
begin
close;
SQL.clear;
SQL.add('exec master..sp_helpindex ') // 具体参数你自己加
open;
end
master,而我需要传入的表名并不在master库中。因此发生错误!
然后我想的程序连的是liandasys
我用 query 这个写with Query do
begin
close;
SQL.clear;
SQL.add('exec master..sp_helpindex '+''''+'dbo.bm'+''''); // 具体参数你自己加
open;
end结果返回 liandasys 表 bm 的索引信息
然后我写的程序连的是数据库为liandasys
我用 query 这样写with Query do
begin
close;
SQL.clear;
SQL.add('exec master..sp_helpindex '+''''+'dbo.bm'+''''); // 具体参数你自己加
open;
end结果返回 liandasys 表 bm 的索引信息
还是提示表在master库中不存在
例如 我在 tempdb 注意 我当前连的数据库是 tempdb 然后运行
exec master..sp_helpindex 'dbo.syscolumns'如果还不行 ,可能是我的表达能力有问题~ 呵呵 这个问题 我就此打住了~! ^_^
如果传一个master库中不存在的表名就会有问题。虽然没有解决,但是我还是很感激你的热心回答。分虽然少,
但表示了我的一份心意,请笑纳~
真郁闷啊~
实在不兴只有自己写SQL而不调用这些系统存储过程了