mssql存储过程中的怪问题,高手请进

来源:百度知道 编辑:UC知道 时间:2024/06/05 00:43:53
我最终想构造成这样的句子:
select * from 指定库名.dbo.syscolumns
from 同上指定库名.dbo.syscolumns
WHERE (id = OBJECT_ID(同上指定库名.dbo.table_name')) AND (name = '指定字段名')

现在有这些条件:

库名是动态的,可以获取,暂用@lib使用
在配合 if exists(指定的查询语句) 使用的时候,
我想在”指定的查询语句”处使用有@lib构造的语句时,却做不到,哪个高手可以指教一下,我把所有分都给你.
其实就是构造一个带有变量的语句,且能在EXISTS()这个括号里面使用就行,当然如果有变通的方法,请赐教!!感激不尽

很简单!
我给你套完整的!

set nocount on
declare @database varchar(50),@table varchar(50)
set @database='ztx'
set @table='test'
if exists(select 1 from master..sysdatabases where name=@database)
begin
if exists(select 1 from sysobjects where name=@table)
begin
print '输入正确!请看结果表格'
exec('select * from '+@table+'')
end
else
begin
print '您输入的数据库'+@database+'存在,但是这个数据库中不含有'+@table+'表'
end
end
else
print '对不起,您输出的数据库不存在'

或者

create proc dbtable @database varchar(50),@table varchar(50)
as
set nocount on
if exists(select 1 from master..sysdatabases where name=@database)
begin
if exists(select 1 from sysobjects where name=@table)
begin
print '输入正确!请看结果表格'
exec('select * from '+@table+'')
end
else
begin
print '您输入的数据库'