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