请问表名如何使用变量? 注: 不是在存储过程中的string tableName = "aaa";comm.CommandText = "SELECT Title FROM "+tableName;这样随便写了一下,没道理的,不行,有何方法吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试着先将这个sql语句赋于一个变量,再赋于command.commandtext=变量名 --在查询分析器中执行下面的语句看看declare @tabname varchar(20)set @tabname='xianshichongfu'exec('select * from '+@tabname) --动态语句执行DECLARE @tablename varchar(100)set @tablename = 'test.dbo.custinfo'exec ('select * from ' + @tablename)--动态sql语句用法 --1 :普通SQL语句可以用Exec执行 --eg: Select * from tableName Exec('select * from tableName') Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N --2:字段名,表名,数据库名之类作为变量时,必须用动态SQL --eg: declare @fname varchar(20) set @fname = 'FiledName' Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。 Exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格 --当然将字符串改成变量的形式也可 declare @fname varchar(20) set @fname = 'FiledName' --设置字段名 declare @s varchar(1000) set @s = 'select ' + @fname + ' from tableName' Exec(@s) -- 成功 exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000) set @s = 'select ' + @fname + ' from tableName' Exec(@s) -- 成功 exec sp_executesql @s -- 此句正确 --3. 输出参数 declare @num int, @sqls nvarchar(4000) set @sqls='select count(*) from tableName' exec(@sqls) --如何将exec执行结果放入变量中? declare @num int, @sqls nvarchar(4000) set @sqls='select @a=count(*) from tableName ' exec sp_executesql @sqls,N'@a int output',@num output select @num 试着先将这个sql语句赋于一个变量,再赋于command.commandtext=变量名之前就是过了不行 -.- string tableName = "aaa";comm.CommandText = "SELECT Title FROM "+tableName;如果comm.CommandText = "SELECT Title FROM aaa"就对了 string tableName = "aaa";comm.CommandText = "SELECT Title FROM "+tableName;如果comm.CommandText = "SELECT Title FROM aaa"就对了但是提示sql语句错误 关闭非模态窗口时如何刷新父窗口?? 判断一个字符串在一个字符串中? 左右两个frame不什么会有空隙 积累2天的分提问 如何用代码修改用户的exchange邮箱的地址 [求助]AJAX中的modalPopup在MasterPage上无效 asp.net中图片选取器的问题 怎么用配置文件设置方法的启用和禁用C#。求解。 如何解决提交到当前页面的数据保留状态问题? 一个超级菜鸟问题,答着有分!!!!!!!!!!!! 求 294108FF-12F6-47A0-BC8C-C7235725B499 的正则表达式 高手在吗?
set @tabname='xianshichongfu'exec('select * from '+@tabname)
DECLARE @tablename varchar(100)
set @tablename = 'test.dbo.custinfo'exec ('select * from ' + @tablename)
--动态sql语句用法
--1 :普通SQL语句可以用Exec执行 --eg:
Select * from tableName
Exec('select * from tableName')
Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N --2:字段名,表名,数据库名之类作为变量时,必须用动态SQL --eg:
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格 --当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = 'FiledName' --设置字段名 declare @s varchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句正确 --3. 输出参数
declare @num int,
@sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls) --如何将exec执行结果放入变量中? declare @num int,
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num
comm.CommandText = "SELECT Title FROM "+tableName;
如果comm.CommandText = "SELECT Title FROM aaa"就对了
comm.CommandText = "SELECT Title FROM "+tableName;
如果comm.CommandText = "SELECT Title FROM aaa"就对了但是提示sql语句错误