Mit jelent a ## kettős szám előjel az SQL-ben?

Egy meta-bejegyzés szép kivonatot ad az SQL-ből

declare @search nvarchar(max) = ##searchfor:string?carefully %listen## select id [Post Link] , score , creationdate , lastactivitydate , closeddate , owneruserid as [User Link] from posts where body like concat("%", @search, "%") collate SQL_Latin1_General_CP1_CI_AI or title like concat("%", @search, "%") collate SQL_Latin1_General_CP1_CI_AI 

Mit jelent a ## kettős számjel odabent?

Gondolom, ez valamiféle karakterlánc-szintaxis, de ehhez még kulcsszót sem tudok kitalálni. googling “számjel ## az SQL-ben” visszaadja az “előtag ideiglenes tábláit” , ami nem ez a helyzet.

Válasz

## körülvesz egy lekérdezési paramétert a Stack Exchange Data Explorer (SEDE).

A ? utáni rész az alapértelmezett paraméter értéke.

A SEDE oktatóanyagból , amelyet Monica Cellio írt:

Megjegyzés: a paraméterekhez használt szintaxis a SEDE-re jellemző. Minden, amit az SQL-ről eddig mondtunk, az SQL minden ízére igaz; ez más.

Amint ebben a lekérdezésben látható, akkor egy paraméterre hivatkozik, ha a nevét megduplázott fontjelekkel veszi körül, például ## MinScore ##. Opcionálisan megadhatja az adattípust (int (egész szám), float (tízes értékű szám, például 2.5) vagy karakterlánc): ## MinScore: int ##. Ha megad egy írja be, akkor a SEDE ellenőrzi az értékeket az adott típushoz képest, így ha számot vár a pontszámra, és valaki " egyszarvú " A lekérdezés nem fut. Ha nem ad meg típust, akkor a lekérdezés váratlan bemeneteket kaphat.


## nincs jelentése a standard SQL-ben. Noha itt nem erről van szó, a Transact-SQL-ben előtagként használják egy globális ideiglenes objektum azonosítására:

Szabályok a szokásos azonosítókhoz

A számjellel kezdődő azonosító ideiglenes táblázatot vagy eljárást jelöl. A kettős számjellel (##) kezdődő azonosító globális ideiglenes objektumot jelöl. Bár a számjellel vagy a kettős számjellel használható karakterek más típusú objektumok nevének megkezdéséhez, nem javasoljuk ezt a gyakorlatot.

Megjegyzések

  • Érdemes megjegyezni, hogy globális ideiglenes táblázatot használna az SQL Server szolgáltatásban, amikor ideiglenes táblázatot kell létrehoznia, amelyet több különböző munkamenethez kell elérnie, de állandó táblázat nem ideális.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük