declare @deb nvarchar(200)
set @deb='raw'
insert into table11
select * from @deb.dbo.table2
The above code is not working. Is there any way to use server name as variable?
You cannot change a column, table, schema, or database reference in a SQL statement. On the other hand, you can use dynamic SQL:
declare @deb nvarchar(200);
set @deb = 'raw';
declare @sql nvarchar(max);
set @sql = '
insert into table11
select * from @deb.dbo.table2
';
set @sql = replace(@sql, '@deb', @deb);
exec sp_executesql @sql;
Yes there is, Use Dynamic SQL
declare @deb nvarchar(200)
set @deb='raw'
declare @sql as nvarchar(max) = 'insert into table11
select * from '+@deb+'.dbo.table2'
exec (@sql)
table2 into table1. Is it happening?