SQL Server Management Studio--执行其他脚本的脚本?

SQL Server Management Studio--执行其他脚本的脚本?,sql,sql-server,ssms,Sql,Sql Server,Ssms,因此,我一直在寻找一种方法来开发一个脚本,该脚本将使用SQLServerManagementStudio从我的项目文件夹中执行其他脚本,但到目前为止,其他解决方案都不起作用。我尝试编写一个包含sqlcommandline内容的脚本: sqlcmd -S.\SQLExpress -imyScript.sql; 这不起作用,据我所知,使用@\path\to\script.sql也不起作用,所以还有其他想法吗?还是我应该开始考虑写一个程序?在这种情况下,有人能给我指出正确的方向吗 提前感谢您的帮助

因此,我一直在寻找一种方法来开发一个脚本,该脚本将使用SQLServerManagementStudio从我的项目文件夹中执行其他脚本,但到目前为止,其他解决方案都不起作用。我尝试编写一个包含sqlcommandline内容的脚本:

sqlcmd -S.\SQLExpress -imyScript.sql; 
这不起作用,据我所知,使用@\path\to\script.sql也不起作用,所以还有其他想法吗?还是我应该开始考虑写一个程序?在这种情况下,有人能给我指出正确的方向吗


提前感谢您的帮助。

就我个人而言,我会考虑编写存储过程。如果你做一个快速的搜索,这是很好的,网上有很多资源

或者,您可以执行类似的操作以实现此目的,您需要有权限执行命令shell,等等:

CREATE TABLE ##SQLFiles ( SQLFileName VARCHAR(2000))
GO

INSERT INTO ##SQLFiles
EXECUTE master.dbo.xp_cmdshell 'dir /b "C:\SQL Scripts\*.sql"'
GO

DECLARE cFiles CURSOR LOCAL FOR
    SELECT DISTINCT [SQLFileName]
    FROM ##SQLFiles
    WHERE [SQLFileName] IS NOT NULL AND
          [SQLFileName] != 'NULL'
    ORDER BY [SQLFileName]

DECLARE @vFileName            VARCHAR(200)
DECLARE @vSQLStmt             VARCHAR(4000)

OPEN cFiles
FETCH NEXT FROM cFiles INTO @vFileName
WHILE @@FETCH_STATUS = 0
BEGIN
    -- The following SET command must be on a single line or else an error will be generated.
    -- It is split in this script for readability purposes.
    SET @vSQLStmt = 'master.dbo.xp_cmdshell ''osql -S Server Name -U User Name -P Password
                     -d Database Name -i "C:\SQL Scripts\' + @vFileName + '"'''
    EXECUTE (@vSQLStmt)

    FETCH NEXT FROM cFiles INTO @vFileName
END

CLOSE cFiles
DEALLOCATE cFiles
GO

DROP TABLE ##SQLFiles
GO

谢谢你,我想我会考虑制定一个程序,但我非常感谢你的帮助。