我的SQL有什么问题
我在下一行的“+”错误附近得到一个不正确的语法:我的SQL有什么问题,sql,sql-server-2008,Sql,Sql Server 2008,我在下一行的“+”错误附近得到一个不正确的语法: Select * FROM + @DATABASE_NAME + '.' + @SCHEMA_NAME + '.' + @TABLE_NAME; 以下是我的SQL: Declare @TABLE_NAME varchar(10) Declare @SCHEMA_NAME varchar(10) Declare @DATABASE_NAME varchar(10) Set @TABLE_NAME = 'Freshmen'; Set @SCHE
Select * FROM + @DATABASE_NAME + '.' + @SCHEMA_NAME + '.' + @TABLE_NAME;
以下是我的SQL:
Declare @TABLE_NAME varchar(10)
Declare @SCHEMA_NAME varchar(10)
Declare @DATABASE_NAME varchar(10)
Set @TABLE_NAME = 'Freshmen';
Set @SCHEMA_NAME = 'stu';
Set @DATABASE_NAME = 'Student';
Select * FROM + @DATABASE_NAME + '.' + @SCHEMA_NAME + '.' + @TABLE_NAME;
我在这里遗漏了什么吗?您可能应该使用函数来完成这项操作您不能在FROM上为数据库或表使用变量。唯一的方法是使用动态sql,但请先看一看 您在第三次申报时丢失了一个e 基本上,您无法运行此操作,您需要在字符串上加载select并执行该字符串:
Declare @TABLE_NAME varchar(10)
Declare @SCHEMA_NAME varchar(10)
Declare @DATABASE_NAME varchar(10)
Set @TABLE_NAME = 'Freshmen';
Set @SCHEMA_NAME = 'stu';
Set @DATABASE_NAME = 'Student';
declare @mySQL varchar(50)
set @mySql= 'Select * FROM ' + @DATABASE_NAME + '.' + @SCHEMA_NAME + '.' + @TABLE_NAME
exec(@mySql)
天哪,5张反对票似乎越来越多,而不是他/她要为1700万个问题负责。但是先生/女士793468您还有一个涉及动态sql的问题,您应该接受答案,或者继续跟进。
Declare @TABLE_NAME varchar(10)
Declare @SCHEMA_NAME varchar(10)
Declare @DATABASE_NAME varchar(10)
Set @TABLE_NAME = 'Freshmen';
Set @SCHEMA_NAME = 'stu';
Set @DATABASE_NAME = 'Student';
declare @mySQL varchar(50)
set @mySql= 'Select * FROM ' + @DATABASE_NAME + '.' + @SCHEMA_NAME + '.' + @TABLE_NAME
exec(@mySql)
Declare @sql varchar(max)
Declare @TABLE_NAME varchar(10)
Declare @SCHEMA_NAME varchar(10)
Declare @DATABASE_NAME varchar(10)
set @sql = 'select * from [' + @database_name + '].[' + @schema_name + '].[' + @table_name + ']'
exec (@sql)