sql语句,有关OPENROWSET。sql7.0和access2000.
@diannao varchar(100), @biaoming varchar(30)
/*@diannao 电脑名和路径 @biaoming accesss表名
*/
As declare @sql varchar(256)
set @sql='insert into OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+')
(编码,商品名称)
select 编码,商品名称 from b编码
where b编码.编码 NOT IN (select 编码 from OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+')'
execute (@sql)
各位,但加上了下面的条件后出现
错误:unclosed quotation mark before the characfer string ''.
where b编码.编码 NOT IN (select 编码 from OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+')'
麻烦各位分析一下
playyuer在吗?
问题点数:100、回复次数:15Top
1 楼dqj()回复于 2001-06-29 00:21:56 得分 0
高手来看一下Top
2 楼huanggx(大侠)回复于 2001-06-29 01:03:15 得分 50
你的字符串表达式有问题。
在SQL中,如果在字符串中插入字符串的分隔符'(单引号),需要这样:'''''
比如:'abcd' + '''' + 'XXX' + '''' + 'efgh'的结果是:abcd'XXX'efgh
希望解决了你的问题
Top
3 楼huanggx(大侠)回复于 2001-06-29 01:05:32 得分 0
对不起,上面的说明中,引号多了一个,应该是4个单引号插入一个引号。
''''Top
4 楼dqj()回复于 2001-06-29 10:53:14 得分 0
'insert into OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+')
(编码,商品名称)
select 编码,商品名称 from b编码
where b编码.编码 NOT IN (select 编码 from OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+')
错在何处?Top
5 楼dqj()回复于 2001-06-29 10:55:56 得分 0
'insert into OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+')
(编码,商品名称)
select 编码,商品名称 from b编码
where b编码.编码 NOT IN (select 编码 from OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+')
错在何处? Top
6 楼dqj()回复于 2001-06-29 10:56:47 得分 0
insert into OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+')
(编码,商品名称)
select 编码,商品名称 from b编码
where b编码.编码 NOT IN (select 编码 from OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+')
错在何处? Top
7 楼playyuer(退休干部 卧鼠藏虫)回复于 2001-06-29 11:04:02 得分 50
错在何处?
是在设计时,根本存不成 SP?(Design time)
还是运行 SP 时出错?(Run Time)Top
8 楼huanggx(大侠)回复于 2001-06-29 11:17:49 得分 0
'insert into OPENROWSET
(' + '''' + 'Microsoft.Jet.OLEDB.4.0' + '''' + ',' + '''' + @diannao + '''' + ';' +'''' + 'admin' + ''''+ ';' + ''''+ '''' + ',' + @biaoming + ')
(编码,商品名称)
select 编码,商品名称 from b编码
where b编码.编码 NOT IN (select 编码 from OPENROWSET
('+ '''' + 'Microsoft.Jet.OLEDB.4.0' + '''' + ',' '''' + @diannao + '''' + ';' + '''' + 'admin' + '''' + ';' + '''' + '''' + ',' + @biaoming + ')
Top
9 楼dqj()回复于 2001-06-29 13:10:50 得分 0
to:playyuer(女㊣爱)运行 SP 时出错
下面的正常
@diannao varchar(100), @biaoming varchar(30)
declare @sql varchar(256)
set @sql='insert into OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+')
(编码,商品名称)
select 编码,商品名称 from b编码'
execute (@sql)
但加上了下面的条件后出现
@diannao varchar(100), @biaoming varchar(30)
declare @sql varchar(256)
set @sql='insert into OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+')
(编码,商品名称)
select 编码,商品名称 from b编码
where b编码.编码 NOT IN (select 编码 from OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+')'
错误:unclosed quotation mark before the characfer string ''.
Top
10 楼dqj()回复于 2001-06-29 13:34:12 得分 0
我要结束了。
最后问一下,你们在处理sql7.0和access之间的数据时用什么方法?
我上面的方法有什么缺点或优点?Top
11 楼playyuer(退休干部 卧鼠藏虫)回复于 2001-06-29 13:55:15 得分 0
说明 [b编码] 表里的数据含有 "单引号"!!!Top
12 楼dqj()回复于 2001-06-29 16:56:49 得分 0
declare @sql varchar(1000) 加长就行了。
能帮我写一个更新例句吗?我头都晕了。
assess 表名:编码
编码 商品名称 录入时间
sql7.0 表名:b编码
编码 商品名称 录入时间
如果 b编码.录入时间<>编码.录入时间
则用sql7.0的编码 商品名称 录入时间 的值 更新 access 编码 商品名称 录入时间 的值
Top
13 楼playyuer(退休干部 卧鼠藏虫)回复于 2001-06-29 17:13:54 得分 0
Update openrowset(...) set openrowset(...).录入时间 =sql.录入时间
FROM openrowset(...) Innerjoin SQL on ....
Top
14 楼playyuer(退休干部 卧鼠藏虫)回复于 2001-06-29 17:16:10 得分 0
SQL Server 是支持 Update 的 From 子句的!Top
15 楼dqj()回复于 2001-06-29 21:16:59 得分 0
编译时出错
update OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+')
set OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+').商品名称 =b编码.商品名称 from b编码
where OPENROWSET
('+ '''Microsoft.Jet.OLEDB.4.0'',''' + @diannao + ''';'+'''admin'';'+''''',' + @biaoming+').编码=b编码.编码 from b编码
Top




