Click here to Skip to main content
15,912,756 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,

I am showing list of available databases in front-end. I am passing database name to stored procedure.

My Sql Query for sp:
SQL
exec 'sample_db'

My SP:
SQL
alter procedure sp_sample_db
@db_name nvarchar(100)
AS
BEGIN
SET NOCOUNT ON;
if exists(select name from master.dbo.sysdatabases where name =@db_name)
   begin
      select * from @db_name.dbo.my_table
   end
else
   begin
      print 'db not exists'
   end
END
GO


I know it can be done by using
SQL
select * from  [sample_db].dbo.my_table

But I want to try this some other way. Please help.
Thanks in advance
Posted
Updated 7-Jul-15 1:22am
v4
Comments
syed shanu 27-Mar-14 4:54am    
Chk this :
Declare @db_name varchar(20)='testTB'


select name from master.dbo.sysdatabases where name=@db_name


declare @q varchar(1000)
set @q = 'SELECT * FROM ' + @db_name + '.dbo.my_table'

exec (@q)
Andrius Leonavicius 27-Mar-14 6:00am    
Post it as solution. ;)
KumarSundeep 27-Mar-14 6:41am    
I think that's the worked solution. Please paste your solution below in solution box.
srmohanr 27-Mar-14 5:01am    
Thanks its working.

1 solution

Chk this :
SQL
Declare @db_name varchar(20)='testTB' 
select name from master.dbo.sysdatabases where name=@db_name 
declare @q varchar(1000) 
set @q = 'SELECT * FROM ' + @db_name + '.dbo.my_table' 
exec (@q)
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900