在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");