是否可以执行包含变量的sql语句?
是否可以执行包含变量的sql语句是否可以执行包含变量的sql语句?,sql,sql-server,Sql,Sql Server,是否可以执行包含变量的sql语句 DECLARE @SCHEMA varchar(40) set @SCHEMA='X_SLF' select * from @SCHEMA..Acc_tblCompany --// anyway to use this type of statement? --below statement works select * from X_SLF..Acc_tblCompany --我不希望执行以下解决方案:
DECLARE @SCHEMA varchar(40)
set @SCHEMA='X_SLF'
select * from @SCHEMA..Acc_tblCompany --// anyway to use this type of statement?
--below statement works
select * from X_SLF..Acc_tblCompany
--我不希望执行以下解决方案:
DECLARE @Sql nvarchar(80)
set @Sql=' select * from '+@SCHEMA+'..Acc_tblCompany'
Execute sp_executesql @Sql
也许您可以将其作为案例陈述来实现。这并不是你想要的,但至少你可以给调用者一种错觉,认为它是参数化的wrt模式我认为这是不可能的。SQL在这方面不是很灵活,因为您的varibale声明为varchar(40),我认为您不能像这样使用它。第二个查询似乎更合适。不,只有当变量作为动态SQL执行时,才可能在from子句中放入变量-这是唯一的方法。因此,“不要”解决方案是唯一可行的解决方案。您不能在SQL语句中参数化对象。请注意,在第一个示例中,您试图提供的是一个字符串,而SQL Server希望在该位置提供的是一个名称。虽然它们看起来很相似,但实际上并不相同。