Heim >Datenbank >MySQL-Tutorial >Eine vollständige Sammlung klassischer MYSQL-Anweisungen – Techniken

Eine vollständige Sammlung klassischer MYSQL-Anweisungen – Techniken

黄舟
黄舟Original
2016-12-20 16:37:151553Durchsuche

1, 1=1, 1=2 werden häufig in SQL-Anweisungskombinationen verwendet
„wobei 1=1“ bedeutet, alles auszuwählen, „wobei 1=2“ bedeutet, nicht alles auszuwählen,
Zum Beispiel : if @strWhere !=''
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere
end
else
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
end
Wir können es direkt als
Fehler schreiben! Katalogeintrag nicht gefunden.
 set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 stabilisieren'+ @strWhere 2. Verkleinern Sie die Datenbank
 --Index neu erstellen
 DBCC REINDEX
 DBCC INDEXDEFRAG
 --Daten und Protokolle verkleinern
 DBCC SHRINKDB
 DBCC SHRINKFILE
 3. Komprimieren Sie die Datenbank
 dbcc Shrinkdatabase(dbname)
 4. Übertragen Sie die Datenbank auf eine neuer Benutzer Benutzerberechtigungen vorhanden
exec sp_change_users_login 'update_one','newname','oldname'
go
5. Überprüfen Sie den Sicherungssatz
RESTORE VERIFYONLY from disk='E:dvbbs.bak' GO
 7. Protokoll löschen
 SET NOCOUNT ON
 DECLARE @LogicalFileName sysname,
 @MaxMinutes INT,
 @NewSize INT
 USE tablename – Der Name der zu erstellenden Datenbank betätigt
 SELECT @ LogicalFileName = 'tablename_log', -- Name der Protokolldatei
@MaxMinutes = 10, -- Beschränkung der zulässigen Zeit zum Umschließen des Protokolls.
@NewSize = 1 -- Die Größe der Protokolldatei Sie möchten (M) festlegen
Einrichten / Initialisieren
DECLARE @OriginalSize int
SELECT @OriginalSize = size
FROM sysfiles
WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG ist ' +
 CONVERT(VARCHAR(30),@OriginalSize) + ' 8K Seiten oder ' +
 CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
 FROM sysfiles WHERE name = @LogicalFileName
CREATE TABLE DummyTrans
(DummyColumn char (8000) not null)
DECLARE @Counter INT,
@StartTime DATETIME,
@ TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
– Umschließt das Protokoll, falls erforderlich.
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN – Äußere Schleife.
SELECT @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill Log') DELETE DummyTrans
SELECT @Counter = @Counter + 1
END
EXEC ( @TruncLog)
 END
 SELECT 'Final Size of ' + db_name() + ' LOG is ' +
 CONVERT(VARCHAR(30 ),size) + ' 8K Seiten oder ' +
 CONVERT( VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF
8. Beschreibung: Eine Tabelle ändern
exec sp_changeobjectowner 'tablename','dbo'
9. Änderungen in allen Tabellen speichern
PROCEDURE ERSTELLEN dbo.User_ChangeObjectOwnerBatch
@OldOwner als NVARCHAR(128),
@NewOwner als NVARCHAR(128)
AS
DECLARE @Name als NVARCHAR(128)
DECLARE @Owner als NVARCHAR(128)
DECLARE @OwnerName als NVARCHAR (128)
curObject CURSOR DECLARE FOR
select 'Name ' = name,'Owner' = user_name(uid) from sysobjects where user_name(uid)=@OldOwner order by name
OPEN curObject
FETCH NEXT FROM curObject INTO @Name, @Owner
WHILE(@@ FETCH_STATUS=0)
BEGIN
if @Owner=@OldOwner
begin
set @OwnerName = @OldOwner + '.' + rtrim(@Name)
exec sp_changeobjectowner @OwnerName, @NewOwner
End
– select @name,@NewOwner,@OldOwner
FETCH NEXT FROM curObject INTO @Name, @Owner
ENDE
curObject schließen
curObject freigeben
GO
 10. Daten direkt in eine Schleife in SQL SERVER schreiben
 declare @i int
 set @i=1
 while @i< ;30
 begin
 in Testwerte (Benutzer-ID) einfügen( @i) set @i=@i+1
Ende
Fall:
Unten finden Sie eine Tabelle, die verlangt, dass alle, die nicht bestanden haben, korrigiert werden müssen, und auf der Grundlage einer Erhöhung von 0,1 jedes Mal werden sie einfach bestehen:
Nennen Sie die Punktzahl
Zhangshan 80
Lishi 59
Wangwu 50
Songquan 69
while((select min(score) from tb_table)<60)
begin
update tb_table set score = Punktzahl*1,01
wobei Punktzahl< ;60
 if (select min(score) from tb_table)>60
break
else
continue
end

Das Obige ist die vollständige Sammlung klassischer MYSQL-Anweisungen - Fähigkeiten Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn