日期:2014-05-18  浏览次数:20447 次

请问这句话哪里错了?

user 表里有
id name
1 张三
2 李四

declare @name varchar(20)
EXEC ('SELECT '+ @name+'=name FROM user WHERE ID=1')
报如下错误:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '=' 附近有语法错误。

这是为什么呢?

能详解下动态SQL吗?

------解决方案--------------------
SQL code
--user 表里有 
CREATE TABLE TEST(id INT,  name NVARCHAR(10)) 
INSERT TEST SELECT 1 , N'张三' 
INSERT TEST SELECT 2,  N'李四' 
EXEC ('declare @name Nvarchar(20)  ; SELECT @name=name FROM TEST WHERE ID=1 SELECT @NAME') 
DROP TABLE TEST
/*--------------------
张三

(1 行受影响)*/