Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dynamiczne tabele T-SQL i tabele temp

Najpierw musisz utworzyć swoją tabelę, a następnie będzie ona dostępna w dynamicznym SQL.

To działa:

CREATE TABLE #temp3 (id INT)
EXEC ('insert #temp3 values(1)')

SELECT *
FROM #temp3

To nie zadziała:

EXEC (
        'create table #temp2 (id int)
         insert #temp2 values(1)'
        )

SELECT *
FROM #temp2

Innymi słowy:

  1. Utwórz tabelę tymczasową
  2. Wykonaj proces
  3. Wybierz z tabeli tymczasowej

Oto kompletny przykład:

CREATE PROC prTest2 @var VARCHAR(100)
AS
EXEC (@var)
GO

CREATE TABLE #temp (id INT)

EXEC prTest2 'insert #temp values(1)'

SELECT *
FROM #temp


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znaleźć prawdziwą nazwę kolumny aliasu używanego w widoku?

  2. Dlaczego typ DATETIME SQL Server oszczędza czas w taktach 1/300 sekundy?

  3. Dlaczego nie ma funkcji okienkowych w klauzulach where?

  4. Wyszukiwanie rozmyte w programie SQL Server z wartością procentową dopasowania

  5. Jak uzyskać wszystkie tabele z lub bez ograniczenia klucza podstawowego w bazie danych serwera SQL — samouczek SQL Server / TSQL 59