请问从SQL_SERVER的sysobjects获得用户定义表后,如何通过获得的表名对表进行操作?(请看代码)

Description of your first forum.

请问从SQL_SERVER的sysobjects获得用户定义表后,如何通过获得的表名对表进行操作?(请看代码)

帖子hongma » 星期五, 2002年1月11日 19:11


use pubs
declare @tablename varchar(256)

declare xml_trans_cursor cursor for
select name from sysobjects where type='u'

open xml_trans_cursor
fetch next from xml_trans_cursor into @tablename
print @tablename
[b]--select * from object_id(N'[dbo].[@tablename]') for xml auto[/b][red](出错!)[/red]
[b]--select * from @tablename for xml auto[/b][red](出错!)[/red]
while @@fetch_status = 0
begin
 fetch next from xml_trans_cursor into @tablename
 print @tablename
--  select * from object_id(N'[dbo].[@tablename]') for xml auto
end

close xml_trans_cursor
deallocate xml_trans_cursor
 
 
 

请问从SQL_SERVER的sysobjects获得用户定义表后,如何通过获得的表名对表进行操作?(请看代码)

帖子goaha » 星期五, 2002年1月11日 21:39


包你可以
把你的
--  select * from object_id(N'[dbo].[@tablename]') for xml auto
替换成
exec 'select * from '+object_id(N'[dbo].[@tablename]')+' for xml auto'
 
 
 

请问从SQL_SERVER的sysobjects获得用户定义表后,如何通过获得的表名对表进行操作?(请看代码)

帖子goaha » 星期五, 2002年1月11日 21:46


不好意思,应当是把你的
--  select * from object_id(N'[dbo].[@tablename]') for xml auto
替换成
declare @tt nvarchar(400)
set @tt= 'select * from '+@tablename+' for xml auto'
exec sp_executesql  @tt
我在sql2000下测试过
 
 
 

请问从SQL_SERVER的sysobjects获得用户定义表后,如何通过获得的表名对表进行操作?(请看代码)

帖子hongma » 星期五, 2002年1月11日 22:38


谢谢! 非常感谢, 现将分数送给你.