帮我看看这个SQL语句,谢谢! 你这里是不是要用变量代替表名字。如果是的话。不可以的。不过可以用动态的sql语句。来执行! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你能给我一个动态SQL的例子吗?最好包括字段名,字段值和表名都用变量代替. 动态SQL语句的一些常见写法1:普通SQL语句可以用Exec执行eg: Select * from tableName Exec('select * from tableName') sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N2:字段名,表名,数据库名之类作为变量时,必须用动态SQLeg: declare @fname varchar(20) set @fname = '[name]'Select @fname from sysobjects -- 错误Exec('select ' + @fname + ' from sysobjects') -- 请注意 加号前后的 单引号的边上要加空格exec sp_executesql N' select ' + @fname + ' from sysobjects' 当然将字符串改成变量的形式也可 declare @s varchar(1000) set @s = 'select ' + @fname + ' from sysobjects' Exec(@s) -- 成功 exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000) set @s = 'select ' + @fname + ' from sysobjects' Exec(@s) -- 成功 exec sp_executesql @s -- 此句正确,3: 输出参数eg:declare @num, @sqlsset @sqls='select count(*) from ' + @servername + '.a.dbo.b'exec(@sqls)我如何能将exec执行的结果存入变量@num中declare @num int, @sqls nvarchar(4000)set @sqls='select @a=count(*) from '+@servername+'.a.dbo.b'exec sp_executesql @sqls,N'@a int output',@num outputselect @num 回宁哥:Exec('select ' + @fname + ' from sysobjects') 如果要把表sysobjects也用变量来表示,再加上个WHERE条件,条件的字段和字段值都用变量来代替,应该怎么写啊? Exec('select ' + @fname + ' where ' + @字段 + ' = ' + @条件 + ' from sysobjects') 如果条件是字符型Exec('select ' + @fname + ' where ' + @字段 + ' = ''' + @条件 + ''' from sysobjects') 还是sql行转列问题,老虾们别见笑~查了老半天我还是不会啊 sql 2005 安装问题 SQL怎么写? 100分求教SQL Server Reporting Service SDK for PHP 问题? 关于触发器中插入数据的问题! 同时安装Sql2000 和 Sql2005的问题 sql语句,如何更新字段的属性?如何建索引?如何更改文件组的大小? 关于中文的问题,请问" select N'哈' "的“N” 是什么 数据库高手请进 在数据表中怎样查前0-20条记录 急求!!高手进!!一个关于SQL中DTS的问题? 命題求解:課程與學生是多對多關係,請選出輸入的所有n個學生都了報名的課程。
最好包括字段名,字段值和表名都用变量代替.
1:普通SQL语句可以用Exec执行eg: Select * from tableName
Exec('select * from tableName')
sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N2:字段名,表名,数据库名之类作为变量时,必须用动态SQLeg:
declare @fname varchar(20)
set @fname = '[name]'
Select @fname from sysobjects -- 错误
Exec('select ' + @fname + ' from sysobjects') -- 请注意 加号前后的 单引号的边上要加空格
exec sp_executesql N' select ' + @fname + ' from sysobjects' 当然将字符串改成变量的形式也可
declare @s varchar(1000)
set @s = 'select ' + @fname + ' from sysobjects'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)
set @s = 'select ' + @fname + ' from sysobjects'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句正确,3: 输出参数eg:
declare @num,
@sqls
set @sqls='select count(*) from ' + @servername + '.a.dbo.b'
exec(@sqls)
我如何能将exec执行的结果存入变量@num中declare @num int,
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from '+@servername+'.a.dbo.b'
exec sp_executesql @sqls,N'@a int output',@num output
select @num
Exec('select ' + @fname + ' from sysobjects') 如果要把表sysobjects也用变量来表示,再加上个WHERE条件,条件的字段和字段值都用变量来代替,应该怎么写啊?
Exec('select ' + @fname + ' where ' + @字段 + ' = ''' + @条件 + ''' from sysobjects')