问题:我想添加" N / A"进入我的@SQL SELECT
查询:我可以添加'知道'值或者我是否需要声明它们并按照tableName添加?
测试:我试过了:
' +' N / A' +' 和 ' +" N / A" +'
注意:如果我删除了N / A行代码,那就可以了。
错误:列名无效' N / A'。
代码:
USE [DB]
GO
/****** Object: StoredProcedure [dbo].[spExcelIntoTable] Script Date: 01/10/2015 13:27:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spExcelIntoTable]
(
@tableName NVARCHAR(256)
)
AS
BEGIN
DECLARE @sql NVARCHAR(MAX)
SET @sql = 'SELECT a.ID AS ID,
a.UPRN,p.BuildingNo,
p.Street,p.Postcode ,
a.ItemRef,a.SurveyDate ,
a.OverallRiskCategory ,
a.SurveyorsComments
INTO TEMP_' + @tableName + '
FROM TblAsbestos
AS a JOIN TblProperty
As p on a.UPRN = p.UPRN
WHERE a.OverallRiskCategory <> "N/A"
ORDER BY a.OverallRiskCategory'
EXEC (@sql)
END
GO
答案 0 :(得分:2)
双引号是SQL Server中的对象标识符,您需要使用两个单引号来使用字符串leteral。
目前,sql server将“N / A”视为列名"N/A"
SET @sql = 'SELECT a.ID AS ID,
a.UPRN,p.BuildingNo,
p.Street,p.Postcode ,
a.ItemRef,a.SurveyDate ,
a.OverallRiskCategory ,
a.SurveyorsComments
INTO TEMP_' + @tableName + '
FROM TblAsbestos
AS a JOIN TblProperty
As p on a.UPRN = p.UPRN
WHERE a.OverallRiskCategory <> ''N/A''
ORDER BY a.OverallRiskCategory'
答案 1 :(得分:1)
对于动态sql代码,请使用double '
:
WHERE a.OverallRiskCategory <> ''N/A''