gpt4 book ai didi

sql - 在启动时运行 MS SQL 服务器脚本

转载 作者:行者123 更新时间:2023-12-04 13:47:18 25 4
gpt4 key购买 nike

当我启动(或重新启动)我的 Windows 2012 R2 服务器实例(谷歌云服务器)时,我试图运行一个 SQL 脚本。我这样做是使用 SQL 脚本、批处理文件和任务调度程序。

为了测试,我创建了一个简单的 SQL 脚本,用于向表中添加日期戳:

USE <Databasename>
GO

INSERT INTO testingTable(time_Stamp)
VALUES (GETDATE())

SELECT * FROM testingTable

(其中 Databasename 显然包含特定数据库的名称)

批处理文件如下所示:
sqlcmd -S <servername> -i "C:\Temp\testQuery.sql" > C:\Temp\output.txt

我正在将所有内容输出到文本文件。当我运行批处理文件时,输出看起来不错:它打印一个列表,其中包含我运行此 SQL 查询的所有时间并将其保存在文本文件中。

我已安排此任务在启动时运行(按照此处的步骤操作: https://www.sevenforums.com/tutorials/67503-task-create-run-program-startup-log.html)。我在这里尝试了一系列设置,但似乎没有任何效果,包括论坛中突出显示的确切设置。

当我现在重新启动服务器时,输出文件显示以下错误消息:
Msg 904, Level 16, State 3, Server <servername>, Line 1
Database 7 cannot be autostarted during server shutdown or startup.
Msg 208, Level 16, State 1, Server <servername>, Line 2
Invalid object name 'testingTable'.

在您登录到其中一个用户帐户之前,似乎 MS SQL 不允许运行脚本。

问题实际上是我想要运行的实际 SQL 任务必须在早上很早就运行,以便在每个人到达办公室时完成。我已设法使用 VMPower 自动启动服务器,但无法自动登录其中一个帐户。

我希望有人能给我一些关于如何解决这个问题的反馈。最好我希望我当前的设置能够工作,但是如果有人知道如何自动登录到现有谷歌云服务器实例上的帐户,那也会非常有帮助。

谢谢,
约斯特

最佳答案

SQL Server offers the system stored procedure sp_procoption which can be used to designate one or more stored procedures to automatically execute when the SQL Server service is started.


For instance, you may have an expensive query in your database which takes some time to run at first execution. Using sp_procoption, you could run this query at server startup to pre-compile the execution plan so one of your users does not become the unfortunate soul of being first to run this particular query. I've used this feature to set up the automatic execution of a Profiler server side trace which I've scripted. The scripted trace was made part of a stored procedure that was set to auto execute at server start up.

exec sp_procoption @ProcName = ['stored procedure name'], 
@OptionName = 'STARTUP',
@OptionValue = [on|off]
阅读更多: Automatically Running Stored Procedures at SQL Server Startup .

docker
MSSQL Docker 镜像的解决方案,参见: SQL Server Docker container is stopping after setup .

关于sql - 在启动时运行 MS SQL 服务器脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44334791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com