【发布时间】:2020-05-27 20:54:39
【问题描述】:
我正在尝试声明这些值并使用执行它们来获取表中属性的特定值。但是,每次我尝试设置 @test 和 @columnPeriod 时,它都会给我错误必须声明标量变量“@test”或必须声明标量变量“@columnPeriod”
DECLARE @columnPeriod VARCHAR(MAX), @test INT;
SET @test = 2015;
SET @columnPeriod = 'SELECT Period FROM Courses WHERE year = ' + @test + '';
【问题讨论】:
-
为什么在存储字符串时 columnPeriod 是 int ?将 @columnPeriod 更改为 varchar 或 nvarchar。
-
感谢您的提及。只是拼写错误@JonH
-
如果您运行
SELECT Period FROM Courses WHERE year = '2015';,您是否会返回超过 1 条记录?SELECT distinct Period FROM Courses WHERE year = '2015';呢? -
我无法重现您的错误。当我在您的问题中运行代码时,我得到
Conversion failed when converting the varchar value 'SELECT Period FROM Courses WHERE year = ' to data type int.,那是因为您正在尝试使用int 类型变量test进行字符串连接。如果您不发布产生错误的实际代码,人们很难帮助您。
标签: sql-server tsql