Đã cố gắng chọn ... vào bảng tạm thời #TempTable trong sp_Executedsql. Không được chèn thành công hay không nhưng có Tin nhắn có viết (359 hàng bị ảnh hưởng) có nghĩa là đã được chèn thành công? Tập lệnh bên dướiThực hiện sp_executeSql để chọn ... thành #table nhưng không thể chọn ra Bảng dữ liệu Temp
DECLARE @Sql NVARCHAR(MAX);
SET @Sql = 'select distinct Coloum1,Coloum2 into #TempTable
from SPCTable with(nolock)
where Convert(varchar(10), Date_Tm, 120) Between @Date_From And @Date_To';
SET @Sql = 'DECLARE @Date_From VARCHAR(10);
DECLARE @Date_To VARCHAR(10);
SET @Date_From = '''+CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-1,120)+''';
SET @Date_To = '''+CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-1,120)+''';
'+ @Sql;
EXECUTE sp_executesql @Sql;
Sau khi thực hiện, trả lại thư cho tôi (359 hàng bị ảnh hưởng). Tiếp theo khi cố gắng chọn dữ liệu từ #TempTable.
Select * From #TempTable;
nó trở lại tôi:
Msg 208, Level 16, State 0, Line 2
Invalid object name '#TempTable'.
nghi ngờ chỉ là 'chọn' phần làm việc của mình mà thôi. Chèn không hoạt động. cách khắc phục sự cố?
Tôi nghĩ từ "phạm vi" sẽ tốt hơn. 'DECLARE @sql NVARCHAR (MAX); SET @sql = 'SELECT @@ SPID'; EXECUTE sp_executesql @sql; SELECT @@ SPID' –
Cảm ơn @Michal, tôi đã nhớ lại phương pháp sử dụng này.Thanks lại – Worgon
Câu hỏi là cách khắc phục. Không phải lý do tại sao nó phá vỡ. Tôi đã cung cấp câu trả lời đúng dưới đây. 'INSERT INTO @tmpTbl EXEC sp_executesql @ sql' –