我尝试使用临时表来开发这个存储过程但是这不起作用所以我切换到使用表变量.我需要对表变量执行临时动态查询,然后使用该表变量来执行最终查询.问题是我收到错误"必须声明标量变量@clms".我假设Exec没有表变量的范围?
DECLARE @qry nvarchar(4000)
DECLARE @clms TABLE (mastcatname nvarchar(50),engdtlbeta decimal (18,4))
SET @qry='INSERT INTO @clms
SELECT distinct replace(mastcatname, '' '', '''') as mastcatname,
engdtlbeta
FROM vw_Scorecard
WHERE empsurveyid=' + cAST(@EmpSurveyID AS nvarchar(10)) + '
AND UnitID IN (' + @UnitIDs + ')
ORDER BY engdtlbeta desc, MastCatName'
EXEC(@qry)
DECLARE @cols nvarchar(1000)
SELECT @cols=COALESCE (@cols + ',[' + mastcatname + ']', '[' + mastcatname + ']')
FROM @clms
SET @qry='SELECT UnitName ,
ParentName, ' + @cols + '
FROM (
SELECT …
Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的数据表:
UnitID UnitParentID ScoreCount ScoreSum Level
7112 72 292 1
7120 7112 72 308 2
7139 7112 24 82 2
7150 7112 166 586 2
23682 7112 104 414 2
7100 7112 272 1016 2
23691 7112 94 300 2
23696 7112 24 80 2
23700 23696 184 594 3
23694 23691 24 64 3
23689 7120 88 390 3
7148 23696 112 420 3
7126 7120 32 132 3
7094 7120 96 332 3
7098 7094 64 240 4 …
Run Code Online (Sandbox Code Playgroud) 我正在尝试运行一个简单的批处理文件,该文件调用 SQL Server 中的备份脚本。当我将其输入命令行时,它可以工作,但是当从 .bat 文件运行时,什么也没有发生。没有错误,根本没有输出。
\n\nsqlcmd.exe -S WIN-FPQSHCEB0EM -E -Q "EXEC sp_BackupDatabases @backupLocation=\'E:\\Backups\\\', @databaseName=\xe2\x80\x99xxxxxx\xe2\x80\x99, @backupType=\'F\'"\nPAUSE\n
Run Code Online (Sandbox Code Playgroud)\n\n知道为什么这行不通吗?
\n