从数据库中把所有表数据导出:
1编辑一个文件selectoutsql:
set nocount on
use databasename
go
select 'bcp databasename' + name + ' out d:\temp\' + name + 'txt -Uusername -Ppassword -Sservername -c ' from sysobjects where type='U'
go
2在cmd中执行:
isql -Uusername -Ppassword -Sservername -i d:\selectoutsql -o d:\bcpoutbat
3执行d:\bcpoutbat文件, 可以把数据导出到d:\temp\目录。
把所有表数据导入到数据库时,将上面的out改为in
4bcp导入导出:
导出数据:
bcp DatabaseNamedbotableName out D:\tableNametxt -SServerName -Usa -P -c -b 10000
导入数据:
bcp DatabaseNamedbotableName in D:\tableNametxt -SServerName -Usa -P -c -b 10000
在导入大量数据时加上-b参数,分批提交不以致于数据库日志被塞满。
Sybase IQ 包括一个幻像数据库,称为实用程序数据库,它没有物理表示。没有此数据库的数据库文件,该数据库也不含数据。实用程序数据库可以在任何 Sybase IQ 服务器上运行。
该实用数据库允许小范围的SybaseIQ函数实用,如Create database和Drop database等。
通过连接时将utility_db 指定为数据库名称,可以启动实用程序数据库,但不要将实用数据库utility_db指定为数据库文件,因为不存在与实用程序数库关联的数据库文件。
在Windows server上,utility_db的目录配置文件为:C:\Sybase\ASIQ-12_7\win32\util_dbini
文件内容为:
; Utility database file
[UTILITY_DB]
PWD=SQL
Unix或LinuxServer上为:
util_dbini 文件有以下内容:
[UTILITY_DB]
PWD=password
在 Sun、HP、Linux 和 Windows 平台上,要仅允许知道实用程序数据库口令的用户连接到实用程序数据库以及创建或删除数据库,请使用以下命令从命令行启动服务器:
start_asiq -n testsrv -gu utility_db
在 AIX 上,要仅允许知道实用程序数据库口令的用户连接到实用程序数
据库以及创建或删除数据库,请使用以下命令从命令行启动服务器:
start_asiq -n testsrv -gu utility_db -iqmt 256
假定实用程序数据库口令已在安装过程中设置为 ASIQ,则下面的命令会将 Interactive SQL 实用程序作为客户端应用程序启动、连接到名为testsrv 的服务器、装载实用程序数据库并连接到该用户。
dbisql -c "uid=DBA;pwd=ASIQ;dbn=utility_db;eng=testsrv" -jConnect
成功执行此语句将连接到实用程序数据库。您现在便能创建和删除数据
库了。
你可以从微软网站上下载SSMA 迁移工具(Microsoft SQL Server Migration Assistant for Sybase ),然后按照以下步骤将sybase数据库导入到SQL Server
1创建新的SSMA项目
2连接到Sybase服务器
3连接SQL Server
4将Sybase数据库schema转换为SQL Server 数据库schema
5将要转换的数据库对象加载到SQL Server
6将数据迁移到SQL Server
use master
go
---创建数据库设备
disk init
name="DEV_DB_CLIENT_DAT01",
physname="E:\sybase\DSFY100\data\DEV_DB_CLIENT_DAT01dat",
size="128M"
go
exec sp_deviceattr DEV_DB_CLIENT_DAT01, dsync, false
go
---创建数据日志设备
disk init
name="DEV_DB_CLIENT_LOG01",
physname="E:\sybase\DSFY100\data\DEV_DB_CLIENT_LOG01dat",
size="32M"
go
exec sp_deviceattr DEV_DB_CLIENT_LOG01, dsync, false
go
----------------创建数据库
use master
go
create database DB_CLIENT
on DEV_DB_CLIENT_DAT01=128
log on DEV_DB_CLIENT_LOG01=32
go
---给数据库扩容
两种方法,一是增加原来设备的大小,二是增加新的设备
1、增加原来设备的大小:
use master
go
disk resize name='DEV_DB_CLIENT_DAT01',size='200m'
alter database DB_CLIENT on DEV_DB_CLIENT_DAT01='200m'
disk resize name='DEV_DB_CLIENT_LOG01',size=200m
alter database DB_CLIENT log on DEV_DB_CLIENT_LOG01='200m'
2、增加新的设备
use master
go
disk init
name='DEV_NEW',
physname='e:\DB_CLIENT_NEWdat',
size='200m'
go
disk init
name='DEV_NEW_LOG',
physname='e:\DB_CLIENT_NEW_LOGdat',
size='200m'
go
<php
//phpinfo();
$link = @sybase_connect('test', 'sa', '')
or die("Could not connect !"); //连接数据库,第一空必须写服务名称,不能是ip;
echo "Connected successfully<br>";
$db = @sybase_select_db("andkylee",$link) //连接数据库
or die("数据库没有选择");
echo "数据库选择成功<br>";
$sql= "select user_name(uid) as owner, from dbosysobjects where type='U' order by id";
$rs = sybase_query($sql,$link); //查询表
if (!$rs)
{
echo "SQL:"$sql"执行失败!";
exit;
}
//$sybase = sybase_fetch_array($rs);
//print_r($sybase);//结束
echo '<table border="1"><tr><td>ID</td><td>NAME</td><td>COUNT()</td>';
while ($row = sybase_fetch_array($rs)) {
$id = $row["id"];
$name = $row["name"];
$owner = $row["owner"];
$sql_tablecount = "select count() as cnt from "$owner""$name;
$rs_tablecount = sybase_query($sql_tablecount,$link);
$row_tablecount = sybase_fetch_array($rs_tablecount);
$cnt = $row_tablecount["cnt"];
echo '<tr><td>'$id'</td><td>'$name'</td><td>'$cnt'</td></tr>';
}
echo '</table>';
sybase_free_result($rs);
sybase_close($link);
>
以上就是关于在sybase中怎么用bcp导入数据全部的内容,包括:在sybase中怎么用bcp导入数据、sybaseiq client怎么连接数据库、如何把sybase15.5数据库导入到SQL-CSDN论坛等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)