我正在运行安装了Service Pack 1的SQL Server 2008 64位开发人员版.我有一个SQL Server代理作业.在这份工作中,我想得到自己工作的job_id.
在MSDN(http://msdn.microsoft.com/en-us/library/ms175575 ( v=SQL.100 ) .aspx)上,您可以找到在作业步骤中使用令牌的说明.哇,太棒了,这就是我要找的!! 只需使用(JOBID).
从SQL Server 2005 SP1开始,您必须使用像$(ESCAPE_NONE(JOBID))这样的宏.没问题.
但是如果你试试这个例子:
DECLARE @name NVARCHAR(128)
select @name = name from msdb.dbo.sysjobs where job_id = $(ESCAPE_SQUOTE(JOBID))
PRINT @name
Run Code Online (Sandbox Code Playgroud)
你得到:
'ESCAPE_SQUOTE'附近的语法不正确.(Microsoft SQL Server,错误:102)
好的,现在从头开始:
PRINT N'$(ESCAPE_SQUOTE(JOBID))'
Run Code Online (Sandbox Code Playgroud)
结果0xE33FE637C10B3C49A6E958BB3EF06959但JOB_ID是37E63FE3-0BC1-493C-A6E9-58BB3EF06959
的"N'"我觉得做一个隐式转换到(JOBID)的NVARCHAR ......
好吧,我想我要关心的数据类型( JOBID).在这本书中的"SQL Server 2008管理"一百六十九分之一百六十八页面上有同样使用(JOBID)的例子:
declare @jobid binary(16)
SELECT @jobid =Convert(Uniqueidentifier,$(ESCAPE_NONE(JOBID)))
Run Code Online (Sandbox Code Playgroud)
结果:
.附近有语法错误('(的Microsoft SQL Server,错误:102)
.我完全糊涂了,现在请能有人帮我一个好的建议或解决方案各式各样的帮助表示赞赏.
最好的问候Helmut
我需要将数据库中特定表中的数据导出到 Excel 文件 (.xls/.xlsx) 中,该文件将位于网络的共享文件夹中。现在的情况是这样——
我需要使用 SQL SERVER 代理作业。2.我需要每 2 分钟生成一个包含刷新数据的新 excel 文件。
我正在使用不包含 BI 开发工作室的 sql server 2008。我不知道如何解决这种情况。首先,我不确定如何使用作业导出数据,因为我尝试过的每一种可能的方法都存在一些 OLEDB 连接问题。'sp_makewebtask' 在 SQL 2008 中也不可用。我也很困惑如何动态生成文件的名称。
任何参考或解决方案都会有所帮助。
我需要做的是使用T-SQL将数据导出到CSV文件中。
我很困惑有很多方法可以做到,我不知道选择哪种方法,请帮助我确认以下内容:
据我了解,大约有3种方法,希望您能帮助我确认一下:
INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Text;Database=C:\Temp\;HDR=Yes;',
'SELECT * FROM test.csv')
(object_id, name)
SELECT object_id, name
FROM sys.tables;
Run Code Online (Sandbox Code Playgroud)
但这需要csv文件存在,并且带有标头
命令行。
使用联合,获取数据及其列标题。
这是我对将T-SQL导出到CSV的全部理解,请帮助我确认。
还有其他导出到CSV的方法吗?
谢谢!

我已经创建了成功运行的 SSIS 包并将数据转储到所需的位置。但是当我通过作业运行它时,相同的包会导致错误。我用谷歌搜索了这些链接,但没有找到出路 -
http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/9034bdc4-24fd-4d80-ad8d-cc780943397a/
http://www.progtown.com/topic390755-error-at-start-job-the-job-was-invoked-by-user-sa.html
请建议。
我注意到在我们的一些服务器上重启/关闭后SQL代理不会自动启动(SQL服务器启动正常).该服务设置为在Windows中自动启动.当我们手动启动SQL代理时,它会正常启动.
sql sql-server sql-server-2008 windows-server-2008 sql-agent-job
我们有一个表格多维数据集,在 SSMS 中处理数据库(完整)\xc2\xa0 工作正常,但是当从 SQL Server 代理处理时,会抛出以下错误。
\n\n <return xmlns="urn:schemas-microsoft-com:xml-analysis">\n\xc2\xa0 <root xmlns="urn:schemas-microsoft-com:xml-analysis:empty">\n\xc2\xa0\xc2\xa0\xc2\xa0 <Messages xmlns="urn:schemas-microsoft-com:xml-analysis:exception">\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0 <Warning WarningCode="1092550744" Description="Cannot order \'\'[] by [] because at least one value in [] has multiple distinct values in []. For example, you can sort [City] by [Region] because there is only one region for each city, but you cannot sort [Region] by [City] because there are multiple cities for each region." Source="Microsoft SQL Server 2016 Analysis Services Managed Code Module" HelpFile="" />\n\xc2\xa0\xc2\xa0\xc2\xa0 </Messages>\n\xc2\xa0 </root>\n</return>\nRun Code Online (Sandbox Code Playgroud)\n\n … 在SQL 2016 Server上,我有一个调用SSIS包的作业.该包位于SSISDB中的一个项目中并具有参数.其中一个参数是字符串类型,默认为空.
我使用此参数的空值运行作业,并成功运行.
然后我打开了作业属性,转到调用该包的步骤并进入配置并为该参数赋值.
我再次运行该作业并成功运行,参数值对结果产生了预期的影响.
现在我想修改作业并将参数设置回空字符串.重复上面的操作,我打开配置并完全删除参数的值.
当我然后尝试保存Job Step属性时,我会在主题行中显示一条错误对话框.
如果我为该参数添加了非空值,则可以保存作业步骤.
当我第一次创建作业时,我能够使用空字符串保存该值.只是当我将值更改为非空字符串,运行作业,然后尝试将其更改为空,我遇到此错误.
我知道我可以运行alter job脚本或删除并重新创建作业步骤来解决这个问题.我不知道如何解决这个问题.
我的问题是:这是一个已知的错误,还是有一个技巧,使用GUI将执行参数的值从字符串值更改为空字符串?
你们中的任何人都可以这样做,或者我的问题可以重现吗?到目前为止,我在搜索中找不到任何内容.
编辑:按照Aaron的评论,我尝试输入一对单引号作为参数的值.工作接受并成功保存.但是当我运行这个工作时,这对单引号实际上被用作参数的值,而不是空字符串.
Using Microsoft SQL Server 2016 (RTM) Standard Edition, I am trying load a JSON into a SQL Server table using a SQL Server Agent Job, and get the following error:
JSON text is not properly formatted. Unexpected character '"' is found at position 508. [SQLSTATE 42000] (Error 13609).
But when I run it as T-SQL it inserts the data with out errors.
DECLARE @return_value int,
@responseText nvarchar(MAX),
@json nvarchar(MAX)
EXEC @return_value = [dbo].[HTTPRequest]
@URI = N'http://flexapi.foresightgps.com/ForesightFlexAPI.ashx',
@methodName = N'post',
@requestBody …Run Code Online (Sandbox Code Playgroud) 有什么方法可以搜索和查找,什么工作持有特定的表刷新。有多个带有多个步骤的sql代理作业。搜索所有作业并定位作业名称和步骤的sql查询是什么?
这是为了识别与表加载相关的步骤
我正在尝试创建一个基于数据库在线状态运行的作业.例如,步骤1将检查数据库是否在线; 如果数据库在线,它将运行其余步骤,否则,它将报告作业成功.
sql-agent-job ×10
sql-server ×7
sql ×5
sql-agent ×3
ssis ×2
t-sql ×2
csv ×1
etl ×1
excel ×1
json ×1
sqlcmd ×1
ssas ×1
ssas-tabular ×1