SQL 不会打印出我的变量

标签 sql debugging stored-procedures sql-server-2012 dynamic-sql

我正在使用 SQL 存储过程和动态 SQL。当我尝试调试时一切正常,直到我打印我的@columnName。

这是导致问题的代码部分:

DECLARE @query NVARCHAR(2000)
DECLARE @columnName NVARCHAR(250)
SELECT @query = 'SELECT myTable.value FROM myTable WHERE myConditions'
    EXECUTE sp_executesql @query, N'@columnName NVARCHAR(30) OUTPUT', @columnName OUTPUT
    PRINT N'query='+@query
    set @query = ''
    PRINT N'query after reset='+@query
    PRINT N'columnName='+@columnName
    PRINT N'any other message'
Select @query = 'SELECT myValues AS '''+@columnName+''',
                 FROM myTable2
                 WHERE myConditions';
EXEC(@query);

这是输出信息:

query=SELECT myTable.value FROM myTable WHERE myConditions
query after reset=

any other message

那么,我的 columnName= 输出在哪里?

编辑

SQL 版本: Microsoft SQL Server 2012 - 11.0.2100.60 (X64) 2012 年 2 月 10 日 19:39:15 版权所有 (c) 微软公司 Windows NT 6.1(内部版本 7601:Service Pack 1)(管理程序)上的标准版(64 位)

最佳答案

将 SET CONCAT_NULL_YIELDS_NULL OFF 添加到流程的开头,以便在传递 NULL 值时打印语句的其余部分。

关于SQL 不会打印出我的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17482680/

相关文章:

SQL - 获取更新值

python - 向 Python 打印添加日期时间戳

Android调试: java. lang.ArrayIndexOutOfBoundsException

sql-server - 只有 sysadmin 固定服务器角色的成员才能执行此操作。 Azure SQL Server 数据库与 SQL Server 数据库

sql - LEFT JOIN 返回空结果集

mysql - 多对多 + WHERE 字段 <> 值

sql - xp_smtp_sendmail 空格随机添加到html

sql - 如何展平 PostgreSQL 结果

android - assert 在 android 上是否可靠?

sql-server - 以日期为参数在T-SQL中执行存储过程