У меня есть вопрос. Мне лучше сначала вставить свой код
SET @Sql = 'DECLARE @Date_From VARCHAR(10);
DECLARE @Date_To VARCHAR(10);
DECLARE @TempTable VARCHAR(500);
SET @TempTable = #'+@TblName+';
SET @Date_From = '''+CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-@DayPrior,120)+''';
SET @Date_To = '''+CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-@DayPrior,120)+''';
'+ @Sql
Я пытаюсь распечатать @Sql, используя PRINT
и я получаю этот результат
DECLARE @Date_From VARCHAR(10);
DECLARE @Date_To VARCHAR(10);
DECLARE @TempTable VARCHAR(500);
SET @TempTable = #RawData_New;
SET @Date_From = '2011-04-05';
SET @Date_To = '2011-04-05';
Select Distinct Coloum1,Coloum2 into @TempTable
from RawData_New with(nolock)
here Convert(varchar(10), Date_Tm, 120) Between @Date_From And @Date_To
Я получаю сообщение об ошибке после выполнения этого sql, я получаю сообщение об ошибке:
Incorrect syntax near '@TempTable'.
Есть ли какие-либо ограничения для этого # символа или внутри оператора выбора вокруг INTO ?
Я попробовал это не переменное присвоение @TempTable, чтобы непосредственно поместить значение @TempTable в sql, как
Select Coloum1,Coloum2 into #RawData_New
from RawData_New with(nolock)
here Convert(varchar(10), Date_Tm, 120) Between @Date_From And @Date_To
Работает нормально, и я получаю ожидаемый результат? Есть ли решение, чтобы решить эту проблему?
Спасибо.
PS: Я совсем новичок в T-Sql. Пожалуйста, не стесняйтесь указывать на мою ошибку. Мы все учимся на ошибках. Извините за плохой уровень английского.
Привет:
LiangCK