Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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
Sql 批处理文件以仅登录和注销一次_Sql_Sql Server - Fatal编程技术网

Sql 批处理文件以仅登录和注销一次

Sql 批处理文件以仅登录和注销一次,sql,sql-server,Sql,Sql Server,我正在编写批处理文件,该文件将执行10个SQL脚本 我使用的sqlcmd代码是 sqlcmd -S server -U username -P password -d database_name -Q "select * from TrialBalance" -o "E:\Balance.txt" 在这里,我有服务器,用户名和通过每次我使用这个命令的10个sql脚本。我的批处理文件是否可以通过SQL身份验证登录到SQL server,运行所有脚本并注销 我想这会更有效,

我正在编写批处理文件,该文件将执行10个SQL脚本

我使用的sqlcmd代码是

sqlcmd -S server  -U  username -P password  
        -d database_name -Q "select * from TrialBalance" -o "E:\Balance.txt"
在这里,我有服务器,用户名和通过每次我使用这个命令的10个sql脚本。我的批处理文件是否可以通过SQL身份验证登录到SQL server,运行所有脚本并注销


我想这会更有效,对吗?

我想你可以看看这个命令

下面是一个小例子,说明什么对你有用:

脚本A

票据B

包装脚本


如果命令很小,您也可以将它们包含在SQLCmd中,并用分号分隔

sqlcmd -S server  -U  username -P password  
    -d database_name -Q "select * from TrialBalance; select * from GenLedger; select * from JournalEntry" -o "E:\Balance.txt"

您可能还想考虑使用Windows身份验证,这样您的凭据就不会存储在您的命令中,并且不会出现在事件日志中。

我怀疑有10个SQL验证登录/注销与1的开销。我认为这还不够值得你花时间。但是,如果这真的很重要,一个选择是手动或编程方式将10个脚本组合成一个。你在寻找一种简单的数据转储方法吗?
PRINT 'TOTAL TABLES CREATED = ' + CAST(@TOTAL_TABLES AS VARCHAR)
GO
PRINT 'INSERTING DATA INTO EMPLOYEE'
GO

INSERT INTO DBO.EMPLOYEE (FIRSTNAME, LASTNAME) SELECT 'JOHN', 'DOE'
GO
INSERT INTO DBO.EMPLOYEE (FIRSTNAME, LASTNAME) SELECT 'JANE', 'DOE'
GO
INSERT INTO DBO.EMPLOYEE (FIRSTNAME, LASTNAME) SELECT 'JEFF', 'DOE'
GO
SET NOCOUNT ON
GO
PRINT 'Start...'
:On Error exit

:r D:\Temp\a.sql
:r D:\Temp\b.sql
PRINT 'Finish...'
sqlcmd -S server  -U  username -P password  
    -d database_name -Q "select * from TrialBalance; select * from GenLedger; select * from JournalEntry" -o "E:\Balance.txt"