Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL Server中使用空格处理列名_Sql Server_Sql Server 2008 R2_Sql Server 2012 - Fatal编程技术网

Sql server 在SQL Server中使用空格处理列名

Sql server 在SQL Server中使用空格处理列名,sql-server,sql-server-2008-r2,sql-server-2012,Sql Server,Sql Server 2008 R2,Sql Server 2012,我创建了一个SQL查询来更新各个列,其中列名包含空格。如果我将其作为查询手动运行,它会工作: UPDATE dbo.Survey SET PhotoPathQ1='(null)' WHERE "Q1 Photo Taken"='0' UPDATE dbo.Survey SET PhotoPathQ2='(null)' WHERE "Q2 Photo Taken"='0' UPDATE dbo.Survey SET PhotoPathQ3='(null)' WHERE "Q3 Photo Ta

我创建了一个SQL查询来更新各个列,其中列名包含空格。如果我将其作为查询手动运行,它会工作:

UPDATE dbo.Survey
SET PhotoPathQ1='(null)'
WHERE "Q1 Photo Taken"='0'

UPDATE dbo.Survey
SET PhotoPathQ2='(null)'
WHERE "Q2 Photo Taken"='0'

UPDATE dbo.Survey
SET PhotoPathQ3='(null)'
WHERE "Q3 Photo Taken"='0'

... and further similar updates
但是,如果我尝试将SQL Server代理作为Transact-SQL脚本(T-SQL)来自动执行此操作,它实际上不会对我的表执行任何操作,作业会说它已成功运行,但数据尚未更新

任何帮助都将不胜感激


我是否遗漏了一些明显的东西?

看起来您的语法中有错误,请尝试以下示例:

UPDATE dbo.Survey
SET PhotoPathQ1 = null
WHERE [Q1 Photo Taken] = 0
这假设字段
PhotoPathQ1
可为
null
,您实际上希望在其中插入一个true
null
值,而不是字符串
(null)

它还假定
[Q1照片拍摄]
int
字段,不过如果您将其括在引号中,SQL Server将愉快地处理转换。如果它是字符串数据类型,那么应该将引号保留在那里

应在包含空格的字段名上使用方括号,而不是双引号:


[Q1照片拍摄]

确保为运行的作业正确设置了数据库上下文。它很可能是在错误的数据库上运行的。谢谢您的回复。我检查了作业中选择的数据库,它是正确的一个,用方括号替换列名周围的引号,例如[Q1 Photo Taked],作业输出是什么?应至少有8条“受影响的行”消息。谢谢大家语音标记是我的问题,并用方括号将其修复。@user3820933如果
PhotoPathQ1
可为空,您可能仍希望在其中插入适当的
null
值,而不是字符串,因为处理一个真正的
null
值比比较字符串要好。谢谢,我还修改了null值,所以我的脚本现在是:UPDATE dbo。测量集PhotoPathQ1=null,其中[Q1 Photo take]=“0”@user3820933没有问题,从长远来看,它将节省您的工作。