本站首页    管理页面    写新日志    退出


«August 2020»
1
2345678
9101112131415
16171819202122
23242526272829
3031


公告
暂无公告...

我的分类(专题)

日志更新

最新评论

留言板

链接


Blog信息
blog名称:VFP及Sql Server拙笔
日志总数:46
评论数量:107
留言数量:0
访问次数:396363
建立时间:2005年5月12日




[VFP与SQL]如何用 SPT 来发布一条 SELECT 到一个新的 SQL Server 表
文章收藏,  网上资源,  事件记录,  软件技术

老瓷 发表于 2005/11/28 8:25:17

为了发布一条 SQL SELECT 语句来创建一个新的 SQL Server 表,  SQL Server 数据库的 select into/bulkcopy 选项必须是可用的. 在默认情况下, 对于新创建的 SQL Server 数据库, select into/bulkcopy 选项是不可用的. select into/bulkcopy 选项可以用 sp_dboption 储存过程来修改. 修改 select into/bulkcopy 选项状态的语法是: sp_dboption 'pubs','select into/bulkcopy','true' -或者- sp_dboption 'pubs','select into/bulkcopy','false' 以下代码片断用 SQL Pass Through 来选择 Pubs 中的 Authors 表中的全部记录到一个名为 Mytable 的在 Pubs 数据库中的新表中: *!* 注意请修改以下代码中的 SERVER= 节以反映你要连接的 SQL Server.gnConnHandle=SQLSTRINGCONN('DRIVER={SQL Server};SERVER=MY_SERVER;DATABASE=MASTER;' + ;   'UID=sa;PWD=')IF gnConnHandle>0   *!* 查询来确定是否 SELECT INTO 并且 Fast Bulk Copy 是被允许的   sqlcommand="sp_dboption 'pubs','select into/bulkcopy'"   =sqlexec(gnConnHandle,sqlcommand,'bulkcopy')   sqlcommand="IF EXISTS (SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE " + ;      "table_name = 'mytable') " +CHR(13) + CHR(10) + "DROP TABLE mytable"   =sqlexec(gnConnHandle,sqlcommand)   IF UPPER(ALLTRIM(BULKCOPY.CURRENTSETTING))="OFF"      *!* 在默认情况下 SELECT INTO 和 Fast Bulk Copy 是不允许的.      *!* 在选定数据库中许可 SELECT INTO 和 Fast Bulk Copy      sqlcommand="EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'"      =sqlexec(gnConnHandle,sqlcommand)   ENDIF   *!* 使用 PUBS 数据库   sqlcommand="USE pubs"   =sqlexec(gnConnHandle,sqlcommand)   *!* 发布一条 SQL Select 命令并 SELECT INTO 一个 SQL Server 上的新表   sqlcommand="SELECT * INTO mytable" + CHR(13)+CHR(10) + ;      "FROM authors"   =sqlexec(gnConnHandle,sqlcommand)   *!* 使用 MASTER 数据库   sqlcommand="USE master"   =sqlexec(gnConnHandle,sqlcommand)   IF UPPER(ALLTRIM(BULKCOPY.CURRENTSETTING))="OFF"      *!* 如果 SELECT INTO 和 Fast Bulk Copy 原来是被禁止的,      *!* 重置选定数据库的 SELECT INTO 和 Fast Bulk Copy 到它们的原始状态      sqlcommand="EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'false'"      =sqlexec(gnConnHandle,sqlcommand)   ENDIF   *!* Select from 刚创建的表.   sqlcommand="select * from pubs..mytable"   =sqlexec(gnConnHandle,sqlcommand,'mycursor')   =sqldisconn(gnConnHandle)   SELECT mycursor   BROWSE NOWAITENDIF

阅读全文(3041) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144428870 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号