« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
| 公告 |
暂无公告... |
Blog信息 |
blog名称:VFP及Sql Server拙笔 日志总数:46 评论数量:107 留言数量:0 访问次数:434173 建立时间: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 |
|
|