切换数据库可以写数据库..表名select * from db1..table1select * from db2.table2
xiaobzg(小兵张嘎) : 我现在的情况是: 数据库名由外部参数传来,@dbname 在过程中有这么一句: select @id=id from sysobjects where name=@name 现在想给这一名加上数据库名,即类似这样的功能: select @id=id from @dbname.[dbo].sysobjects where name=@name 请问这样一句sql语句应如何写呢?
我想当然了! xiaobzg(小兵张嘎)的绝对行
declare @sqlstr nvarchar(1000) set @sqlstr='select @id_out=id from '+@dbname+'.[dbo].sysobjects where name='''+@name+'''' exec sp_executesql @sqlstr,'@id_out int output',@id output
少个N exec sp_executesql @sqlstr,N'@id_out int output',@id output
关于第二个问题:你那样写根本通不过。
sql 不准在存储过程中用Use命令呢
我现在的情况是:
数据库名由外部参数传来,@dbname
在过程中有这么一句:
select @id=id from sysobjects where name=@name
现在想给这一名加上数据库名,即类似这样的功能:
select @id=id from @dbname.[dbo].sysobjects where name=@name
请问这样一句sql语句应如何写呢?
xiaobzg(小兵张嘎)的绝对行
set @sqlstr='select @id_out=id from '+@dbname+'.[dbo].sysobjects where name='''+@name+''''
exec sp_executesql @sqlstr,'@id_out int output',@id output
exec sp_executesql @sqlstr,N'@id_out int output',@id output