易截截图软件、单文件、免安装、纯绿色、仅160KB

求一sql语句

CREATE PROCEDURE printfp
(
  @machine varchar(30)
)

AS

declare @sqlstr varchar(100)

set @sqlstr = 'select * from ' + @machine +'.mydb.mytable'
exec(@sqlstr)

GO

////////////
有没有如下的方法,不用字符串,直接写查询语句,类似如下
CREATE PROCEDURE printfp
(
  @machine varchar(30)
)
AS

select * from  @machine.mydb.mytable

GO
有吗

没有

存储过程必须用上面的

表名或者字段名是变量时,要用动态SQL

表,列为动态时,必须使用动态SQL.--动态sql语句基本语法
SQL code:

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) --


相关问答:

jsp链接sql2000的疑问?



type Exception report


message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jas ......

如果写递归sql语句 - MS-SQL Server / 应用实例

有两个同样的表结构 
表结构如下:
  id(序号) parentid (父结点序号) name(结点名称)
 表1 记录 1 0 aaa
  2 ......

sql 函数问题 - MS-SQL Server / 应用实例

sql我想得到一字符串为:
sldkf|||sdeww
erkv|||rltdk
jemcl|||ligf
就是|||后面的字符有什么函数能得到吗?是在sql语句写的,不是在页面写的,那位高手来指教下,新手,谢谢
晕今天不是写了么

select parsen ......

oracle中一个SQL语句的区别 - Oracle / 基础和管理

Oracle中SQL语句中
drop table 表名 cascadeconstraints

drop table 表名 cascadeconstraint
有什么区别?
constraint和constraints在oracle中是一样使用的
官方建议使用constraint

引用
constraint和c ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号