exec('select * from table1)--動態的
select * from table1 --靜態的
select * from table1 --靜態的
解决方案 »
- 排名,我又来发贴了。
- 安装SqlServer2008 express时,报错:Cannot find one or more components.Please...
- 问一个编号的问题!!
- 求救
- 一个简单的查询问题,在线等,谢谢
- SQL Server 杀掉进程用什么命令(在线等)
- 有谁见过这样的苛刻限定条件:没有思路。请教大侠!斑竹!是写函数还是有SQL语句呢??
- 安装SQL2000最后配置是出错
- 如何在Acces数据库中自动按时删除数据出
- 如何使用SQL脚本去掉表中的表识因子?????
- SQL Server 2005 附加上去的数据库为只读状态,怎么改成可以读写状态?
- 如何遍历数据库服务器上的所有数据库里的所有的表
你可以做成select * from 函數
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
select * into #t exec('select * from table1')
select * from #t
drop table #t
insert t select 1, 'aa'
union all select 2, 'bbb'declare @t table(id int, val varchar(32))insert into @t exec('select * from t')
select * from @t
/*
id val
----------- --------------------------------
1 aa
2 bbb(2 行受影响)
*/drop table t
select * from (exec 存储过程名字) a
-------------------------------------
先创建临时表,然后
insert into # exec 存储过程名字
select * from #
create proc test
as
select * into #temp from table1select * into #temp from table1--可以实现select * into #temp from (exec('test'))--不可以实现了?有没有其他方法完成这个功能呢?
select * from table1 返回的是记录集
returns table as
return(select * from table1)
go
select * from dbo.F_test()
select * into #temp from (exec('test'))--不可以实现了?有没有其他方法完成这个功能呢?
------------
可以,要先定义表结构。见6,7楼
insert into #temp exec test --如果这句话要成功,是不是首先不许定义#temp得结构.而且#temp的结构还不许和exec test返回得数据结构相同?
if object_id('dbo.F_test')is not null drop function dbo.F_test
go
create function F_test( )
returns table as
return(select * from table1)
go
select * from dbo.F_test()