Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How to specify second DB in SSMS
Message
General information
Forum:
Microsoft SQL Server
Category:
SQL syntax
Miscellaneous
Thread ID:
01683400
Message ID:
01683419
Views:
29
Thank you. I did manage to make this work.
As I mentioned, I think at the top of the thread, the entire exercise was to verify that the name of the second database needs to be ONLY in front of the FROM table. The rest of the SQL Select can simply use the column names as is.

>When you concatenate strings you must carry about single quotes around strings:
>
>set @sql = 'select * from ' + @cSecondDb + '.dbo.mytable' + ' WHERE  Category = ''' + @Category+''''
>
>
>>Yes. I am getting an error:
>>Incorrect syntax near 'F'.
>>
>>>Were you using something like the following?
>>>
>>>use [FirstSQLDatabase];
>>>go 
>>>declare @cSecondDb as Varchar(100);
>>>declare @sql as varchar(max);
>>>declare @Category as Varchar(25);
>>>set @Category = '1009F';
>>>set @cSecondDb = 'SecondSQLDatabase';
>>>set @sql = 'select * from ' + @cSecondDb + '.dbo.mytable' + ' WHERE  Category = ' + @Category
>>>exec (@sql);
>>>
>>>
>>>>I know that I am missing something simple. But how do I add a WHERE clause to the dynamic SQL?
>>>>For example, say I want to add to the SQL Select below:
>>>>
>>>>declare @Category as Varchar(25);
>>>>set @Category = '1009F';
>>>>' WHERE  Category = @Category'
>>>>
>>>>I get error no matter what I do with the @Category.
>>>>
>>>>>Hi Dmitry,
>>>>>
>>>>>Use dynamic SQL, something like this:
>>>>>
>>>>>use [FirstSQLDatabase];
>>>>>go 
>>>>>declare @cSecondDb as Varchar(100);
>>>>>declare @sql as varchar(max);
>>>>>set @cSecondDb = 'SecondSQLDatabase';
>>>>>set @sql = 'select * from ' + @cSecondDb + '.dbo.mytable';
>>>>>exec (@sql);
>>>>>
>>>>>
>>>>>and replace dbo with the appropriate schema name if it's not dbo.
>>>>>
>>>>>
>>>>>>Hi,
>>>>>>
>>>>>>I am testing the SQL Select with a name of the database not current.
>>>>>>This case works:
>>>>>>
>>>>>>use [FirstSQLDatabase]
>>>>>>go
>>>>>>select * from SecondSQLDatabase..mytable where 1=1
>>>>>>
>>>>>>
>>>>>>Now I want to put the 'SecondSQLDatabase' into a variable. Here is how I do it:
>>>>>>
>>>>>>use [FirstSQLDatabase]
>>>>>>go 
>>>>>>declare @cSecondDb as Varchar(100)
>>>>>>set @cSecondDb = 'SecondSQLDatabase'
>>>>>>select * from @cSecondDb..mytable where 1=1    -- this is the line that causes the syntax error.
>>>>>>
>>>>>>
>>>>>>The above produces syntax error.
>>>>>>
>>>>>>What am I missing?
>>>>>>TIA
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham
Previous
Reply
Map
View

Click here to load this message in the networking platform