Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
How to specify second DB in SSMS
Message
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Divers
Thread ID:
01683400
Message ID:
01683418
Vues:
28
Thank you, Borislav. I have never used sp_executesql SP. I will Google and read about it.

>When I use dynamic sql and have WHERE clause I prefer to use sp_executesql SP. That way you avoid SQL Injections:
>
>declare @cSecondDb as Varchar(100)
>DECLARE @sql nvarchar(200)
>declare @Category as Varchar(25);
>set @Category = '1009F'
>set @cSecondDb = 'SecondSQLDatabase'
>SET @sql = 'select * from '+@cSecondDb+'..mytable where Category = @Category'
>EXEC sp_executesql @sql, N'@Category varchar(25)', @Category = @Category
>
>
>>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
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform