用于sql server的SQL查询 [英] T SQL Query for sql server

查看:111
本文介绍了用于sql server的SQL查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

亲爱的,



我有两个数据库

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆