从批处理文件执行SQL Server脚本

Bla*_*de3 2 sql-server-2008

我有一个脚本,我需要使用批处理文件执行.我是否在批处理文件中使用SQLCMD来运行脚本?此外,该脚本还将数据插入数据库中的表.我应该如何在批处理文件中格式化SQLCMD,以便它知道它可以使用哪个数据库?

nag*_*eeb 8

首先,将查询保存为sql文本文件(扩展名为.sql的文本文件).确保在开头添加USE语句,它告诉服务器您要使用哪个数据库.使用MSDN中的示例:

USE AdventureWorks2008R2;
GO
SELECT p.FirstName + ' ' + p.LastName AS 'Employee Name',
a.AddressLine1, a.AddressLine2 , a.City, a.PostalCode 
FROM Person.Person AS p 
   INNER JOIN HumanResources.Employee AS e 
        ON p.BusinessEntityID = e.BusinessEntityID
    INNER JOIN Person.BusinessEntityAddress bea 
        ON bea.BusinessEntityID = e.BusinessEntityID
    INNER JOIN Person.Address AS a 
        ON a.AddressID = bea.AddressID;
GO
Run Code Online (Sandbox Code Playgroud)

然后在批处理文件中运行SQLCMD并将sql文件(带路径)作为参数传递给它.

sqlcmd -S myServer\instanceName -i C:\ myScript.sql

如果您还需要进行身份验证,则需要在SQLCMD命令中添加-U和-P参数.

这是一篇关于sqlcmd实用程序的MSDN文章,其中包含更多详细信息.