求一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) --
相关问答:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jas ......
有两个同样的表结构
表结构如下:
id(序号) parentid (父结点序号) name(结点名称)
表1 记录 1 0 aaa
2 ......
sql我想得到一字符串为:
sldkf|||sdeww
erkv|||rltdk
jemcl|||ligf
就是|||后面的字符有什么函数能得到吗?是在sql语句写的,不是在页面写的,那位高手来指教下,新手,谢谢
晕今天不是写了么
select parsen ......
Oracle中SQL语句中
drop table 表名 cascadeconstraints
与
drop table 表名 cascadeconstraint
有什么区别?
constraint和constraints在oracle中是一样使用的
官方建议使用constraint
引用
constraint和c ......