Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在perl脚本中如何使用';使用';和';GO';sql语句?我有一个perl脚本,但我得到了语法错误_Perl - Fatal编程技术网

在perl脚本中如何使用';使用';和';GO';sql语句?我有一个perl脚本,但我得到了语法错误

在perl脚本中如何使用';使用';和';GO';sql语句?我有一个perl脚本,但我得到了语法错误,perl,Perl,我试图创建一个数据库并使用语句,然后在同一个数据库中创建一个表 #!/usr/bin/perl use DBI; my $host = 'idcqeam726.amdom281.lab'; my $database = 'master'; my $user = 'sa'; my $auth = 'Control123'; # DBD::ADO $dsn = "Provider=sqloledb;Trusted Connection=yes;"; $dsn .= "Server=$h

我试图创建一个数据库并使用语句,然后在同一个数据库中创建一个表

#!/usr/bin/perl
use DBI; 
my $host = 'idcqeam726.amdom281.lab'; 
my $database = 'master'; 
my $user = 'sa'; 
my $auth = 'Control123'; 
# DBD::ADO 
$dsn = "Provider=sqloledb;Trusted Connection=yes;"; 
$dsn .= "Server=$host;Database=$database"; 
my $dbh = DBI->connect("dbi:ADO:$dsn",  $user,  $auth,  { RaiseError => 1, AutoCommit => 1}) || die "Database connection not made: $DBI::errstr";
$dbh->do("CREATE DATABASE [LowBCHR] ");
$dbh->do("ALTER DATABASE [LowBCHR] SET RECOVERY SIMPLE ");
$dbh->do("USE LowBCHR;
CREATE TABLE TestTable(RowID BIGINT IDENTITY PRIMARY KEY ,JoinVal BIGINT DEFAULT ( 0 ) NOT NULL ,DateChange DATETIME2 DEFAULT ( CURRENT_TIMESTAMP ) NOT NULL ,DataCol NCHAR ( 500 ) DEFAULT ( 'BCHR' ));
qq{BEGIN TRANSACTION DECLARE \@i INT = 1 WHILE \@i <= 30000 BEGIN INSERT INTO TestTable ( JoinVal )VALUES ( \@i % 10 )SET \@i = \@i + 1 END};");

不要使用,只需在SQL语句
dbname.tablename
前面加上DB名称即可(我相信您在这里执行了两个命令,因此请检查解析):

$dbh->do(“创建表LowBCHR.TestTable(RowID-BIGINT-IDENTITY-PRIMARY
键,JoinVal BIGINT默认值(0)不为NULL,日期更改日期时间2
默认值(当前时间戳)不为空,数据列NCHAR(500)默认值
(“BCHR”);
$dbh->do(“开始事务声明\@i INT=1而\@i
DBD::ADO::db do failed: Can't Execute 'USE LowBCHR;
Description : Syntax error or access violation
$dbh->do("CREATE TABLE LowBCHR.TestTable(RowID BIGINT IDENTITY PRIMARY
    KEY ,JoinVal BIGINT DEFAULT ( 0 ) NOT NULL ,DateChange DATETIME2
    DEFAULT ( CURRENT_TIMESTAMP ) NOT NULL ,DataCol NCHAR ( 500 ) DEFAULT
   ( 'BCHR' )");

$dbh->do("BEGIN TRANSACTION DECLARE \@i INT = 1 WHILE \@i <= 30000
    BEGIN INSERT INTO LowBCHR.TestTable ( JoinVal )VALUES ( \@i % 10 )SET
    \@i = \@i + 1 END");