列名我有一个临时表aaa
,我作为一个数组使用。SQL:基于可变
USE tempdb
GO
IF OBJECT_ID('tempdb..aaa') IS NOT NULL DROP TABLE aaa
CREATE TABLE aaa (
#1 char(40),
#2 char(40),
#3 char(40)
);
insert into aaa values ('aaaa','qqqq','eeee');
declare @sql varchar(40);
declare @var varchar(40)='#3';
set @sql= '(select '[email protected] +' from aaa)';
print @sql;
我试图做到的,是存储到变量@sql的'(select '[email protected] +' from aaa)'
执行的值,它是:eeee
,而不是简单的字符串(select #3 from aaa)
我知道,'这不是如何SQL应该工作',但后320题阅读SO(我的历史标签可以证明)我的想法:)
阅读关于动态SQL:[link1](https://technet.microsoft.com/pl-pl/library/ms188001(v = sql.110).aspx),[示例](https:// www。 mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/) – Rokuto
我对你想做什么感到困惑。你不要在任何地方执行你的SQL。为什么要将结果值存储在名为'@ sql'的变量中? –
您*已经*听说过['EXECUTE'](https://docs.microsoft.com/sql/t-sql/language-elements/execute-transact-sql),对不对? –