IF OBJECT_ID('test') IS NOT NULL
DROP TABLE test
CREATE TABLE test
(
id int IDENTITY(1,1) NOT NULL ,
NAME VARCHAR(10) NOT null
)
INSERT test(NAME) VALUES('zhangsan')
INSERT test(NAME) VALUES('lisi')
INSERT test(NAME) VALUES('zhaliu')
INSERT test(NAME) VALUES('wangwu')DECLARE @sql VARCHAR(50)
SET @sql = 'SELECT * FROM test '
SELECT * FROM EXEC(@sql) --错误
--请教大家这里应该如何 将exec动态传入的Sql语句执行后返回的表格 查询出来。
返回的数据集 进行操作,
所以需要 再select下。
永生,你QQ号或邮箱多少,我遇到问题了请教你。谢谢
2、A、建表 tb
B、insert into tb exec(@sql)
1、exec (@sql)
2、A、建表 tb
B、insert into tb exec(@sql)
老黎,
你这样 insert into tb exec(@sql)
是不可以的,你可以试一下。
exec ('insert into tb ' + @sql)
DROP TABLE test
CREATE TABLE test
(
id int IDENTITY(1,1) NOT NULL ,
NAME VARCHAR(10) NOT null
)
INSERT test(NAME) VALUES('zhangsan')
INSERT test(NAME) VALUES('lisi')
INSERT test(NAME) VALUES('zhaliu')
INSERT test(NAME) VALUES('wangwu')DECLARE @sql VARCHAR(50)
SET @sql = 'SELECT * FROM test '
if object_id('tempdb..#t')is not null drop table #t
select * into #t from test where 1=0
set identity_insert #t on
insert #t (id,name) EXEC(@sql) --错误
select * from #t/*(所影响的行数为 1 行)
(所影响的行数为 1 行)
(所影响的行数为 1 行)
(所影响的行数为 1 行)
(所影响的行数为 0 行)
(所影响的行数为 4 行)id NAME
----------- ----------
1 zhangsan
2 lisi
3 zhaliu
4 wangwu(所影响的行数为 4 行)*/
DROP TABLE test
CREATE TABLE test
(
id int IDENTITY(1,1) NOT NULL ,
NAME VARCHAR(10) NOT null
)
INSERT test(NAME) VALUES('zhangsan')
INSERT test(NAME) VALUES('lisi')
INSERT test(NAME) VALUES('zhaliu')
INSERT test(NAME) VALUES('wangwu')IF OBJECT_ID('aa') IS NOT NULL
DROP TABLE aaDECLARE @sql VARCHAR(50)
SET @sql = 'SELECT * into aa FROM test '
EXEC(@sql) --错误
--请教大家这里应该如何 将exec动态传入的Sql语句执行后返回的表格 查询出来。
select * from aa(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(4 行受影响)
id NAME
----------- ----------
1 zhangsan
2 lisi
3 zhaliu
4 wangwu(4 行受影响)
DROP TABLE test
go
CREATE TABLE test
(
id int IDENTITY(1,1) NOT NULL ,
NAME VARCHAR(10) NOT null
)
INSERT test(NAME) VALUES('zhangsan')
INSERT test(NAME) VALUES('lisi')
INSERT test(NAME) VALUES('zhaliu')
INSERT test(NAME) VALUES('wangwu')DECLARE @sql VARCHAR(50)
SET @sql = 'SELECT * FROM test '
--exec (@sql)
insert into 表 select * from openrowset( 'SQLOLEDB', '192.168.0.87'; 'sa'; '6745300',' exec ('+@sql+')')
方法一(永生):
创建临时表,将现有表的结构复制给临时表(select * into #t from test where 1=0)
INSERT 和 Exec 结合
方法二(老黎,wqmgxj)
在 EEXEC中 执行(inseIN,或select into INTO
方法三: (zywcy100)
OPENROWSET 不过zywcy100 ,这里 select * from openrowset( 'SQLOLEDB', '192.168.0.87'; 'sa'; '6745300',' exec ('+@sql+')')
是有问题的,请帮忙解决