Jaký je nejlepší způsob, jak zjistit, zda existuje dočasné tabulky v SQL Server?

hlasů
18

Při psaní T-SQL skript, který mám v plánu na re-running, častokrát jsem použít dočasné tabulky pro ukládání dočasných dat. Vzhledem k tomu, stůl temp je vytvářet za chodu, rád bych, aby mohl klesnout tuto tabulku pouze tehdy, pokud existuje (předtím, než jsem ho vytvořit).

Budu psát metodu, kterou používám, ale rád bych, aby zjistil, jestli existuje lepší způsob.

Položena 05/08/2008 v 19:18
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
25

IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END
Odpovězeno 05/08/2008 v 19:21
zdroj uživatelem

hlasů
14

OBJECT_ID vrací vnitřní ID objektu pro daný název a typ objektu. 'Tempdb .. # t1' se vztahuje na stůl # t1 v databázi tempdb. ‚U‘ je pro uživatelem definované tabulky.

IF OBJECT_ID('tempdb..#t1', 'U') IS NOT NULL
  DROP TABLE #t1

CREATE TABLE #t1
(
  id INT IDENTITY(1,1),
  msg VARCHAR(255)
)
Odpovězeno 05/08/2008 v 19:21
zdroj uživatelem

hlasů
0
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
Odpovězeno 17/09/2008 v 21:50
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more