不知道我怎么会错过那一次。我猜,因为我没有在命令行中做太多的工作。自从我发现isql和osql之间有一个隐藏但基本的区别之后,我就在新版本发布时检查了它们,这很好;但要注意的是,它只适用于内容符合“varchar(MAX)”的文件 :r C:\Script
不知道我怎么会错过那一次。我猜,因为我没有在命令行中做太多的工作。自从我发现isql和osql之间有一个隐藏但基本的区别之后,我就在新版本发布时检查了它们,这很好;但要注意的是,它只适用于内容符合“varchar(MAX)”的文件 :r C:\Script,sql,sql-server,tsql,sql-server-2008,Sql,Sql Server,Tsql,Sql Server 2008,不知道我怎么会错过那一次。我猜,因为我没有在命令行中做太多的工作。自从我发现isql和osql之间有一个隐藏但基本的区别之后,我就在新版本发布时检查了它们,这很好;但要注意的是,它只适用于内容符合“varchar(MAX)”的文件 :r C:\Scripts\Script1.sql :r C:\Scripts\Script2.sql :r C:\Scripts\Script3.sql ... sqlcmd -S serverName\instanceName -i C:\Scripts\Scr
不知道我怎么会错过那一次。我猜,因为我没有在命令行中做太多的工作。自从我发现isql和osql之间有一个隐藏但基本的区别之后,我就在新版本发布时检查了它们,这很好;但要注意的是,它只适用于内容符合“varchar(MAX)”的文件
:r C:\Scripts\Script1.sql
:r C:\Scripts\Script2.sql
:r C:\Scripts\Script3.sql
...
sqlcmd -S serverName\instanceName -i C:\Scripts\Script1.sql
--Use cursor to run upgrade scripts
DECLARE OSQL_cursor CURSOR
READ_ONLY
FOR SELECT FileName
FROM #Scripts
ORDER BY Major, Minor, Release, Build
OPEN OSQL_cursor
FETCH NEXT FROM OSQL_cursor INTO @name
WHILE (@@fetch_status <> -1)
BEGIN
IF ((@@fetch_status <> -2) AND (@result = 0))
BEGIN
SET @CommandString = 'osql -S ' + @@ServerName + ' -E -n -b -d ' + @DbName + ' -i "' + @Dir + @name + '"'
EXEC @result = master.dbo.xp_cmdshell @CommandString, NO_OUTPUT
IF (@result = 0)
BEGIN
SET @Seconds = DATEDIFF(s, @LastTime, GETDATE())
SET @Minutes = @Seconds / 60
SET @Seconds = @Seconds - (@Minutes * 60)
PRINT 'Successfully applied ' + @name + ' in ' + cast(@Minutes as varchar)
+ ' minutes ' + cast(@Seconds as varchar) + ' seconds.'
SET @LastTime = GETDATE()
END
ELSE
BEGIN
SET @errMessage = 'Error applying ' + @name + '! The database is in an unknown state and the schema may not match the version.'
SET @errMessage = @errMessage + char(13) + 'To find the error restore the database to version ' + @StartingVersion
SET @errMessage = @errMessage + ', set @UpToVersion = the last version successfully applied, then run ' + @name
SET @errMessage = @errMessage + ' manually in Query Analyzer.'
END
IF @name = (@UpToVersion + '.sql')
GOTO CleanUpCursor --Quit if the final script specified has been run.
END
FETCH ENDT FROM OSQL_cursor INTO @name
END
DECLARE @SQL varchar(MAX)
SELECT @SQL = BulkColumn
FROM OPENROWSET
( BULK 'MeinPfad\MeinSkript.sql'
, SINGLE_BLOB ) AS MYTABLE
--PRINT @sql
EXEC (@sql)