用于sql server的SQL查询 [英] T SQL Query for sql server
问题描述
亲爱的,
我有两个数据库
1.ta
2.Theorem_Analytics_database。
单个存储过程
创建程序MultDB
as
select * from ta.dbo.user_master
声明@ScndDB varchar(100);
set @ScndDB ='[Theorem_Analytics_database] .dbo.User_Master';
select * from @ScndDB
错误:必须声明表变量@ScndDB。
请帮帮我。
但如果如下所示
创建程序MultDB
as
select * from ta.dbo.user_master
声明@ScndDB varchar(100);
set @ScndDB = '[Theorem_Analytics_database] .dbo.User_Master';
select @ScndDB
执行成功。
显示
ta DB User_Mas的所有数据ter表。
和
[Theorem_Analytics_database] .dbo.User_Master
你不能使用变量作为SQL中表名的来源:您必须创建一个包含完整SQL语句的字符串然后执行它:
SET @ ScndDB = ' [Theorem_Analytics_database] .dbo.User_Master'跨度>;
DECLARE @ Command VARCHAR (MAX)
SET @ Command = ' SELECT * FROM' + @ ScndDB
EXEC @ Command
Dear All,
I have two Database
1.ta
2.Theorem_Analytics_database.
Single Stored Procedure
Create procedure MultDB
as
select * from ta.dbo.user_master
declare @ScndDB varchar(100);
set @ScndDB ='[Theorem_Analytics_database].dbo.User_Master';
select * from @ScndDB
ERROR:Must declare the table variable "@ScndDB".
Please help me.
but if it is like below
Create procedure MultDB
as
select * from ta.dbo.user_master
declare @ScndDB varchar(100);
set @ScndDB ='[Theorem_Analytics_database].dbo.User_Master';
select @ScndDB
Execution Success.
it displays
all data of ta DB User_Master Table.
and
[Theorem_Analytics_database].dbo.User_Master
You can't use a variable as the source of a table name in SQL: you would have to create a string containing the full SQL satement and then execute it:
SET @ScndDB ='[Theorem_Analytics_database].dbo.User_Master'; DECLARE @Command VARCHAR(MAX) SET @Command='SELECT * FROM ' +@ScndDB EXEC @Command
这篇关于用于sql server的SQL查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!