sisällönkuvaus antaa mukavan katkelman SQL: stä
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ä kaksinkertaisen numeron merkki ## tarkoittaa siellä?
Luulen, että se on jonkinlainen merkkijonon syntaksi, mutta en voi edes arvata avainsanaa tälle. googling ”numeromerkki ## SQL: ssä” palauttaa ”etuliitteen väliaikaiset taulukot” , joka on ei tapaus.
Vastaus
##
ympäröi kyselyparametria Stack Exchange Data Explorer (SEDE).
Näytön oletusarvo ?
: n jälkeen on oletusarvo parametriarvo.
Monica Cellion kirjoittamasta SEDE -oppaasta :
Huomaa: parametreille käytetty erityinen syntaksikohtainen ominaisuus on SEDE. Kaikki, mitä olemme tähän mennessä sanoneet SQL: stä, pätee kaikkiin SQL-makuihin; tämä on erilaista.
Kuten tässä kyselyssä osoitetaan, viittaat parametriin ympäröimällä sen nimen kaksinkertaistetuilla puntimerkkeillä, kuten ## MinScore ##. Vaihtoehtoisesti voit määrittää tietotyypin (int (kokonaisluku), float (desimaaliarvolla varustettu luku, kuten 2.5) tai merkkijono): ## MinScore: int ##. Jos määrität kirjoita sitten SEDE vahvistaa arvot kyseiseen tyyppiin, joten jos odotat numeroa pisteille ja joku kirjoittaa " yksisarvinen " kysely ei toimi. Jos et määritä tyyppiä, kyselysi saattaa saada odottamattomia syötteitä.
##
ei ole merkitystä tavallisessa SQL: ssä. Vaikka näin ei ole tässä tapauksessa, sitä käytetään Transact-SQL: ssä etuliitteenä globaalin väliaikaisen objektin tunnistamiseksi:
Säännöt tavallisille tunnisteille
Numeromerkillä alkava tunniste tarkoittaa väliaikaista taulukkoa tai menettelyä. Kaksoisnumeromerkillä (##) alkava tunniste tarkoittaa globaalia väliaikaista objektia. Vaikka numeromerkkiä tai kaksoisnumeromerkkiä voidaan käyttää muun tyyppisten objektien nimien aloittamiseen, emme suosittele tätä käytäntöä.
Kommentit
- Saattaa olla syytä huomata, että käytät globaalia väliaikaista taulukkoa SQL Serverissä, kun sinun on luotava väliaikainen taulukko, johon on käytettävä useita istuntoja, mutta pysyvä taulukko ei ole ihanteellinen.