簡體   English   中英

SQL-如何使用變量對?

[英]SQL - how can i use variable right?

我在sql中使用SQL變量時遇到一些問題,當我使用此代碼時,我不清楚如何正確使用它們:

DECLARE @Person VARCHAR(255)
SET @Person = 'Person'

print '----------------------------------------------------------------------------------------------------'

if object_id('@Person', 'U') is not null 
begin
  print '    Tabelle @Person wird entfernt';
  drop table @Person;
end;
GO

它向我顯示以下錯誤:

“ @Person”附近的語法不正確。

請幫我用變量編寫上面正確的sql語句。

您可以嘗試一下,這僅適用於sql server:

DECLARE @Person VARCHAR(255)
SET @Person = 'Person'

print '----------------------------------------------------------------------------------------------------'

if object_id(@Person, 'U') is not null 
begin
  print '    Tabelle ' + @Person + ' wird entfernt'
  execute('drop table ' + @Person)
end
GO

從變量聲明后的代碼中,您似乎正在嘗試創建表變量。 您的聲明是針對字符串變量,而不是表變量。 您的聲明應該看起來像這樣(幾乎就像創建一個實際表一樣):

DECLARE @PersonTable TABLE (PersonColumn varchar(255));
INSERT @PersonTable (PersonColumn) 
VALUES ('PersonColumnValue');

該表變量僅存在於創建它的會話中。 沒有為其分配object_id,因此您無法檢查其是否存在。 您創建了它還是沒有創建它。

另外,由於它只是一個變量,而不是實際的表,因此您無法刪除它。 但是您不需要這樣做,因為它在創建會話結束時將不再存在。

如果您想了解臨時表與表變量的精妙之處,請嘗試一下啤酒,Google“ t sql表變量與臨時表”,然后在傍晚安頓下來。

潛在的德語Google Translate版本:

Aus dem Code,der Ihrer Variablendeklaration,scheint es,als ob Sie eine Tabellenvariable erstellenmöchten。 Ihre Deklaration istfüreine String-Variable,keine Tabellenvariable。 IhreErklärung催眠了我的澳大利亞人(fast wie einetatsächlicheTabelle erstellen):

宣告@PersonTable TABLE(PersonColumn varchar(255)); INSERT @PersonTable(PersonColumn)WERTE('PersonColumnValue');

在Sie sie erstellt haben的Ditz Tabellenvariable existiert nur innerhalb der Sitzung。 Es wird keine object_id zugewiesen,所以dass Sie nicht nach ihrer Existenz suchenkönnen。 擁有完整的信息。

Daes sich dabei nur um eine Variable and nicht um tstschichche Tabelle handelt,könnenSie diese nichtlöschen。 恩斯特·德·埃斯特爾·烏爾德的Aber SieMüssenes nicht,Den es wird wiederaufhörenzu existieren,Went die Sitzung。

溫西·西恩(Wenn Sie)飾演了普倫特·馮·湯普森(Punkte vontemporären)/塔貝倫·德貝爾(Tabellenvariablen Gelangenmöchten),西恩·西希·艾因·法爾·馮·比爾,Google“ t SQL Tabelle Variable vs temp Tabelle”,以及阿希·德·阿本德·埃因祖萊本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM