sql >> Database teknologi >  >> RDS >> Sqlserver

Er det muligt at køre flere DDL-sætninger i en transaktion (inden for SQL Server)?

Jeg ved, at de fleste databaser har begrænsninger, men det har Postgres ikke. Du kan køre en hvilken som helst oprettelse af taltabel, kolonneændringer og indeksændringer i en transaktion, og ændringerne er ikke synlige for andre brugere. Enheden COMMIT lykkes. Sådan skal databaser være! :-)

Med hensyn til SQL Server kan du køre DDL inde i en transaktion, men SQL Server versionerer ikke metadata, og ændringer vil derfor være synlige for andre, før transaktionen forpligtes. Men nogle DDL-udsagn kan rulles tilbage, hvis du er i en transaktion, men for hvilke der virker, og hvilke der ikke gør, bliver du nødt til at køre nogle tests.



  1. Sådan tilføjer du rangordnede positioner af rækker i SQL med RANK()

  2. Hvordan tester jeg i WiX for eksistensen af ​​en registreringsnøgle (ikke værdi) til Oracle ODP.Net

  3. sql geografi til dbgeography?

  4. Hvordan håndterer man valgfri parametre i SQL-forespørgsel?