Vollständige Sammlung klassischer SQL-Anweisungen

WBOY
Freigeben: 2016-08-08 09:28:58
Original
1168 Leute haben es durchsucht

1. Grundlagen

1, Beschreibung: Datenbank erstellen
CREATE DATABASE Datenbankname
2, Beschreibung : Datenbank löschen
Datenbank-Datenbankname löschen
3, Beschreibung: Sicherung SQL-Server
--- Sicherungsdaten erstellenGerät
Master verwenden
EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'
- -- Backup starten

BACKUP DATABASE pubs TO testBack
4, Beschreibung: Erstellen Sie eine neue Tabelle
Tabelle tabname erstellen(col1 type1 [not null] [primary key],col2 type2 [not null],..)

Erstellen Sie eine neue Tabelle basierend auf einer vorhandenen Tabelle:
A: Erstellen Sie eine Tabelle tab_new wie tab_old (verwenden Sie die alte Tabelle, um eine neue Tabelle zu erstellen)
B: Tabelle tab_new erstellen und nur Spalte 1, Spalte 2 … aus tab_old-Definition auswählen
5, Beschreibung: Neue Tabelle löschen
Tabellen-Tabname löschen
6, Beschreibung: Spalte hinzufügen
Tabellen-Tabnamen ändern, Spaltenspalte hinzufügen Typ
Hinweis: Die Spalte kann nach dem Hinzufügen nicht gelöscht werden. In DB2 kann der Datentyp nach dem Hinzufügen der Spalte nicht mehr geändert werden. Die einzige Möglichkeit besteht darin, die Länge des Varchar-Typs zu erhöhen.
7. Anleitung: Primärschlüssel hinzufügen: Tab-Name der Tabelle ändern, Primärschlüssel hinzufügen (Spalte)
Anleitung: Primärschlüssel löschen: Tab-Name der Tabelle ändern und Primärschlüssel löschen (col )

8. Beschreibung: Index erstellen: [eindeutigen] Index-IDX-Namen auf Tabname erstellen (Spalte….)
Index löschen: Index-IDX-Name löschen

Hinweis: Der Index kann nicht geändert werden. Wenn Sie ihn ändern möchten, müssen Sie ihn löschen und neu erstellen.
9, Beschreibung: Ansicht erstellen: Ansichtsansichtsnamen als Select-Anweisung erstellen
Ansicht löschen: Ansichtsansichtsnamen löschen
10, Beschreibung: Mehrere einfache grundlegende SQL-Anweisungen
Auswählen: select * from table1 where Range
Einfügen: in Tabelle1(Feld1,Feld2) Werte(Wert1,Wert2) einfügen
Löschen: Aus Tabelle1 löschen, wobei Bereich

Aktualisieren :Tabelle1 aktualisieren, Feld1=Wert1 festlegen, wobei Bereich
Suchen: * aus Tabelle1 auswählen, wobei Feld1 wie „%Wert1%“ ---wieDie Syntax ist sehr ausgefeilt, überprüfen Sie die Informationen!
Sortieren: wählen Sie * aus Tabelle1, Reihenfolge nach Feld1, Feld2 [absteigend] Gesamt :
Anzahl als Gesamtzahl aus Tabelle1 auswählenSumme:
Summe(Feld1) als Summenwert aus Tabelle1 auswählenDurchschnitt:
Durchschnitt(Feld1) auswählen als Durchschnittswert aus Tabelle1Maximum:
wähle max(field1) als Maximalwert aus Tabelle1Minimum:
wähle min(field1) als Minimalwert aus Tabelle1
11, Beschreibung: Mehrere erweiterte Abfrageoperatoren
A: UNION-Operator UNION-Operator leitet eine Ergebnistabelle ab, indem er zwei andere Ergebnistabellen (z. B. TABELLE1 und TABELLE2) kombiniert und alle doppelten Zeilen in den Tabellen entfernt. Wenn ALL mit UNION (d. h. UNION ALL) verwendet wird, werden doppelte Zeilen nicht entfernt. In beiden Fällen stammt jede Zeile der abgeleiteten Tabelle entweder aus TABELLE1 oder TABELLE2.
B
: EXCEPT-Operator EXCEPT
-Operator Leiten Sie a ab Die resultierende Tabelle wird durch Einschließen aller Zeilen, die in TABELLE1, aber nicht in TABELLE2 enthalten sind, und durch Entfernen aller doppelten Zeilen erweitert. Wenn ALL mit EXCEPT (EXCEPT ALL) verwendet wird, werden doppelte Zeilen nicht entfernt. C: INTERSECT
OperatorINTERSECT
-Operator führt zusammen, indem nur Zeilen einbezogen werden, die sowohl in TABLE1 als auch in TABLE2 Ableitung vorhanden sind eine Ergebnistabelle, indem alle doppelten Zeilen entfernt werden. Wenn ALL mit INTERSECT (INTERSECT ALL) verwendet wird, werden doppelte Zeilen nicht entfernt. Hinweis: Mehrere Abfrageergebniszeilen mit Operatorwörtern müssen konsistent sein
. 12, Beschreibung: Äußere Verknüpfung verwenden
A, linke (äußere) Verknüpfung:
Linker Äußerer Join (linker Join): Die Ergebnismenge umfasst übereinstimmende Zeilen der Join-Tabelle und alle Zeilen der linken Join-Tabelle.
SQL: Wählen Sie a.a, a.b, a.c, b.c, b.d, b.f aus a LEFT OUT JOIN b ON a.a = b.c
B: rechter (äußerer) Join:
Rechter äußerer Join (rechter Join): Die Ergebnismenge umfasst sowohl übereinstimmende Join-Zeilen der Join-Tabelle als auch alle Zeilen der rechten Join-Tabelle.
C: vollständiger/kreuzförmiger (äußerer) Join
: Vollständiger äußerer Join: Es werden nicht nur die übereinstimmenden Zeilen der symbolischen Verknüpfungstabelle einbezogen, sondern auch alle Datensätze in beiden verbundenen Tabellen.
12
, Gruppierung:Gruppieren nach: Eine Tabelle, sobald die Gruppierung abgeschlossen ist, nur Gruppenbezogen abrufen Information.

Gruppenbezogene Informationen: (statistische Informationen) Anzahl, Summe, Max., Min., Durchschnitt Gruppenkriterien) Beim Gruppieren in SQL Server: Felder der Typen Text, NText und Bild können nicht als Gruppierungsbasis verwendet werden.
Felder in der ausgewählten Statistikfunktion können nicht verwendet werden kombiniert mit gewöhnlichen Feldern werden zusammengefügt

13, Datenbank bedienen:
Datenbank trennen: sp_detach_db; Datenbank anhängen : Auf sp_attach_db folgt die Angabe, dass für den Anhang ein vollständiger Pfadname erforderlich ist
14.So ändern Sie den Namen der Datenbank:
sp_renamedb 'old_name ', 'new_name'

2. Verbesserung

1, Beschreibung: Tabelle kopieren (nur Struktur kopieren, Quelltabellenname: a Neuer Tabellenname: b) (Zugriff verfügbar )
Methode 1: wählen Sie * in b aus a, wobei 1<>1 (nur für SQlServer)
Methode 2: wählen Sie die oberste 0 aus * in b von a
2, Beschreibung: Tabelle kopieren (Daten kopieren, Quelltabellenname: a Zieltabellenname: b) (Zugriff verfügbar )
in b(a, b, c) einfügen, d,e,f aus b auswählen;

3, Beschreibung: Kopie von Tabellen über Datenbanken hinweg (absolute Pfade für bestimmte Daten verwenden) (Zugriff verfügbar)
einfügen in b(a, b, c) wähle d,e,f aus b in 'spezifische Datenbank' aus, wobei Bedingung
Beispiel: ..von b in '"&Server. MapPath ("")&"data.mdb" &"' wo..

4, Beschreibung: Unterabfrage (Tabellenname 1: a Tabellenname 2: b)
select a,b, c aus a wo a IN (wähle d aus b) oder: wähle a,b,c aus a wo a IN (1,2,3)

5, Beschreibung: Artikel, Einsender und letzte Antwortzeit anzeigen
wählen Sie a.title,a.username,b.adddate aus Tabelle a, (wählen Sie max(adddate) adddate aus der Tabelle aus, wobei table.title=a.title) b

6, Beschreibung: Outer-Join-Abfrage (Tabellenname 1: a Tabellenname 2: b)
select a.a, a.b , a.c, b.c, b.d, b.f aus a LEFT OUT JOIN b ON a.a = b.c

7, Beschreibung: Online-Ansichtsabfrage (Tabellenname 1: a)
select * from (SELECT a,b, c VON a) T wobei t.a > 1;

8, Beschreibung: Verwendung von „zwischen“, „zwischen“ begrenzt den Abfragedatenbereich und schließt Grenzwerte ein, „nicht zwischen“ schließt nicht ein
wählen Sie * aus Tabelle 1 aus, wobei Zeit zwischen Zeit1 und Zeit2
wählen Sie a,b,c aus Tabelle1 aus, wobei a nicht zwischen Wert1 und Wert2 liegt

9, Beschreibung: Verwendung in
select * from table1 where a [not] in ('value1' ,'Wert 2','Wert 4','Wert 6')

10, Beschreibung: Zwei verwandte Tabellen. Löschen Sie die Informationen in der Haupttabelle, die nicht in der Sekundärtabelle enthalten sind.
löschen aus Tabelle1, wo nicht vorhanden (select * from table2 where table1.field1=table2.field1 )

11, Beschreibung: Vier-Tabellen-Verbindungsabfrageproblem:
Wählen Sie * aus einem linken inneren Join b auf a.a=b.b rechten inneren Join c auf a.a = c.c innerer Join d auf a.a=d.d wobei .....

12, Beschreibung: Erinnerung fünf Minuten im Voraus planen
SQL: Wählen Sie * aus dem Zeitplan aus, wobei datediff('minute' , f Startzeit,getdate())>5

13, Beschreibung: Eine SQL--Anweisung, um das Datenbank-Paging abzuschließen
wählen Sie die Top 10 b.* aus (wählen Sie die Top 20 aus Primärschlüsselfeld = a.Primärschlüsselfeld Reihenfolge nach a.Sortierfeld Spezifische Implementierung: Über Datenbank-Paging: deklarieren Sie @start int,@end int @sql nvarchar(600) set @sql='select top' str(@end-@start 1) ' from T where rid not in(select top' str(@str-1) 'Rid from T where Rid>-1)' exec sp_executesql @sql

Hinweis: Top kann nicht direkt von einer Variablen gefolgt werden, daher ist dies in praktischen Anwendungen die einzige Möglichkeit, eine spezielle Verarbeitung durchzuführen. Rid ist eine Identifikationsspalte, wenn nach oben bestimmte Felder vorhanden sind. Denn dadurch kann die Inkonsistenz in der tatsächlichen Tabelle nach dem Abfrageergebnis vermieden werden, wenn das oberste Feld logisch indiziert ist (die Daten im logischen Index stimmen möglicherweise nicht mit denen in der Datentabelle überein, und wenn sie sich während der Abfrage im Index befinden, wird das Index wird zuerst abgefragt)

14, Beschreibung: erste 10 Datensätze
Top 10 auswählen * aus Tabelle 1 mit Bereich

15, Beschreibung: Wählen Sie alle Informationen des Datensatzes mit dem größten a aus, die jeder Datengruppe mit demselben b-Wert entsprechen (eine ähnliche Verwendung kann für den Monat verwendet werden). Forenrankings, monatliche Analyse der meistverkauften Produkte, Ranking nach Themenbewertungen usw..)
wählen Sie a,b,c aus Tabellenname ta aus, wobei a=(max( a) aus Tabellenname tb, wobei tb.b=ta.b)

16. Beschreibung: Alle Zeilen in TabelleA, aber nicht in TabelleB und TabelleC einbeziehen und alle doppelten Zeilen entfernen, um eine Ergebnistabelle abzuleiten
( wählen Sie eine aus TabelleA ) außer (wähle a aus TabelleB) außer (wähle a aus TabelleC)

17, Beschreibung: Nimm zufällig 10 Datenstücke heraus
wähle die Top 10 * aus der Reihenfolge der Tabellennamen nach newid() aus

18, Beschreibung: Datensätze zufällig auswählen
select newid()

19, Beschreibung: Doppelte Datensätze löschen
1),aus Tabellenname löschen, in dem die ID nicht enthalten ist (max(id) auswählen) aus Tabellenname-Gruppe nach Spalte 1, Spalte 2, ...)
2), wählen Sie ein eindeutiges * in temporär aus Tabellenname aus

löschen Sie aus Tabellenname
insert into tablename select * from temp
Bewertung: Dieser Vorgang erfordert die Verschiebung einer großen Datenmenge. Dieser Ansatz ist nicht geeignet große Kapazität, aber Datenoperation
3), zum Beispiel: Beim Importieren von Daten in eine externe Tabelle wird aus irgendeinem Grund beim ersten Mal nur ein Teil davon importiert, aber es ist schwierig, die Einzelheiten zu beurteilen Speicherort, sodass beim nächsten Mal nur das Ganze importiert wird. Dadurch werden viele doppelte Felder gelöscht

alter table

tablename--
Automatisch inkrementierende Spalte hinzufügen
columne_b hinzufügen
int Identität (1,1)aus Tabellenname löschen
wobei Spalte_b nicht enthalten ist(
max(Spalte_b) aus Tabellennamengruppe nach Spalte1,Spalte2,... auswählen
)
Tabelle ändern, Tabellenname, Spalte löschen, Spalte_b

20

, Beschreibung: Alle Tabellennamen in der Datenbank auflistenName aus Sysobjects auswählen, wobei type='U' // U für Benutzer steht

21

, Beschreibung: Alle Spaltennamen in der Tabelle auflistenName aus Systemspalten auswählen, wobei id=object_id('TableName')

22

, Beschreibung: Listen Sie die Felder „Typ“, „Anbieter“ und „Stückzahl“ auf, geordnet nach dem Typfeld. In Case können problemlos Mehrfachauswahlen implementiert werden, ähnlich wie in „select“. Typ auswählen, Summe (Fallverkäufer, wenn 'A', dann Stück, sonst 0 Ende), Summe (Fallverkäufer, wenn 'C', dann Stück, sonst 0 Ende), Summe (Fallverkäufer, wenn 'B' dann PCs, sonst 0 Ende) VON Tabellenname, Gruppierung nach Typ

Ergebnisse anzeigen:
Typ Vender-PCs

Computer
A 1Computer
A 1
CD
B 2
CD
A 2
Mobiltelefon
B 3
Mobiltelefon C 3

23. Beschreibung: Tabelle Tabelle1 initialisieren

TRUNCATE TABLE table1

24

, Beschreibung: Datensätze von 10 bis 15 auswählenTop 5 * aus Tabelle _alias (wählen Sie die Top 15 * aus der Tabellenreihenfolge nach ID aufsteigend) aus Reihenfolge nach ID-Beschreibung
3. Fähigkeiten

1, 1=1, 1=2 werden häufig in SQL-Anweisungskombinationen verwendet

„wobei 1=1“ bedeutet, alle auszuwählen „wobei 1=2“ und nicht alle auszuwählen,

wie zum Beispiel:
wenn @ strWhere ! =''
beginset @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

schreiben

Fehler! Katalogeintrag nicht gefunden.

set @strSQL = 'select count(*) as Total from [' @tblName '] where 1=1
stabil ' @strWhere 2, Datenbank verkleinern --
Index neu erstellen DBCC REINDEX
DBCC INDEXDEFRAG--

Daten verkleinern und protokollieren
DBCC SHRINKDB
DBCC SHRINKFILE

3

, Datenbank komprimierendbcc Shrinkdatabase(dbname)

4

, Übertragen Sie die Datenbank an den neuen Benutzer mit bestehenden Benutzerrechtenexec sp_change_users_login 'update_one','newname','oldname'
gehen

5

, Backup-Satz prüfenNUR ÜBERPRÜFUNG WIEDERHERSTELLEN von Festplatte='E:dvbbs.bak'

6, Datenbank reparieren
ALTER DATABASE [dvbbs] SET SINGLE_USER
GO
DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK
GO
ALTER DATABASE [dvbbs] SET MULTI_USER
GO

7, Protokoll löschen
SET NOCOUNT ON
DECLARE @LogicalFileName Systemname,
@MaxMinutes INT,
@NewSize INT


USE tablename -- Der Name der zu bedienenden Datenbank
SELECT @LogicalFileName = 'tablename_log', -- Name der Protokolldatei
@MaxMinutes = 10, -- Begrenzung 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)
-- Wickeln Sie das Protokoll bei Bedarf ein.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE ()) – Zeit ist nicht abgelaufen
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN – Outer 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
NOCOUNT OFF SETZEN

8, Beschreibung: Eine Tabelle ändern
exec sp_changeobjectowner 'tablename','dbo'

9. Änderungen in allen Tabellen speichern

PROZEDUR 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
wobei user_name(uid)=@OldOwner
Nach Namen bestellen

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
END

CurObject schließen
CurObject freigeben
GO


10, direktes Schleifenschreiben von Daten in SQL SERVER
declare @i int
set @i=1
while @i<30
begin
in Test-(Benutzer-ID-)Werte einfügen(@i)
set @i=@i 1
end
Fall
:
hat die folgende Tabelle, die erfordert, dass alle nicht bestandenen Noten korrigiert werden, und basierend auf einer Erhöhung um jeweils 0,1 werden sie einfach bestanden:

Namensbewertung

Zhangshan 80

Lishi 59

Wangwu 50

Songquan 69

while((select min(score) from tb_table)<60)

beginnen

tb_table set score =score*1.01 aktualisieren

wobei die Punktzahl<60 ist

if (select min(score) from tb_table)>60

Pause

sonst

weiter

Ende

Datenentwicklung – Klassiker


1. Sortieren Sie nach Nachnamensstrichen:
Wählen Sie * aus Tabellenname, Reihenfolge nach Kundenname, sortieren Sie Chinese_PRC_Stroke_ci_as //Von den wenigsten bis zu den meisten

2. Datenbankverschlüsselung:
select encrypt('Originalpasswort')
select pwdencrypt('Originalpasswort
')
wählen Sie pwdcompare('ursprüngliches Passwort','verschlüsseltes Passwort') = 1 – das Gleiche; ansonsten nicht das Gleiche encrypt('ursprüngliches Passwort
')
Wählen Sie pwdencrypt('Original-Passwort
')
Wählen Sie pwdcompare('Original-Passwort','verschlüsseltes Passwort') = 1 – sonst nicht dasselbe

3.Rufen Sie die Felder in der Tabelle ab:
deklarieren Sie @list varchar(1000),
@sql nvarchar ( 1000)
select @list=@list ',' b.name aus sysobjects a,syscolumns b where a.id=b.id and a.name='
Table A'
set @sql='select ' right(@list,len(@list)-1) ' from table A'
exec (@sql )

4.Festplattenpartition anzeigen:
EXEC master..xp_fixeddrives

5.Vergleichen Sie die Tabellen A und B, um zu sehen, ob sie gleich sind:
if (select checksum_agg(binary_checksum(*)) ) aus A)
=
(select checksum_agg(binary_checksum(*)) aus B)
print '
Gleich'
else
print „Nicht gleich“

6.Alle Profiler-Prozesse beenden:
hcforeach CURSOR GLOBAL DECLARE FÜR SELECT 'kill ' RTRIM(spid ) FROM master. dbo.sysprocesses
WHERE program_name IN('SQL Profiler',N'SQL
Profiler')
EXEC sp_msforeach_worker '?
'

7.

Datensatzsuche:
Anfang von N Datensätzen
Top N * aus Tabelle
---------------------------------N
bis
M Datensätze(müssen Primärindex habenID)Oberste M-N * aus
Tabelle auswählen Wo ID in (Oberste M-ID auswählen aus Tabelle) Sortierung nach ID-Beschreibung------------------------------------------------
N
Zum Ende des Datensatzes
Wählen Sie Top N * From Table Order by ID Desc
CaseZum Beispiel 1: Eine Tabelle hat mehr als 10.000 Datensätze. Das erste Feld der Tabelle, RecID, ist ein sich selbst erhöhendes Feld. Schreiben Sie eine SQL-Anweisung, um den 31. bis 40. Datensatz der Tabelle zu finden.

Wählen Sie die 10 häufigsten Rückfälle aus A aus, in denen der Rückfall nicht enthalten ist (wählen Sie die 30 häufigsten Rückfälle aus A aus)

Analyse: Wenn recid so geschrieben wird, treten einige Probleme auf, wenn recid einen logischen Index in der Tabelle hat.

Wählen Sie die Top-10-Recide aus A aus, wobei... aus dem Index gesucht wird, während die nachfolgenden ausgewählten Top-30-Recide aus A in der Datentabelle gesucht werden, sodass die Reihenfolge im Index möglicherweise nicht mit der in der Datentabelle übereinstimmt Daher handelt es sich bei den abgefragten Daten nicht um die ursprünglich gewünschten Daten.

Lösung

1, verwenden Sie Order by Select Top 30 Recid aus A Order by Ricid. Wenn das Feld nicht automatisch wächst, treten Probleme auf

2, Fügen Sie auch Bedingungen in dieser Unterabfrage hinzu: wählen Sie die 30 häufigsten Rückfälle aus A aus, wobei Rückfall>-1 ist

Beispiel

2: Fragen Sie den letzten Datensatz in der Tabelle ab. Wir wissen nicht, wie viele Daten , und welche Tabellenstruktur diese Tabelle enthält.
set @s = 'select top 1 * from T where pid not in (select top ' str(@count-1) ' pid from T)'

print @s exec sp_executesql @s

9: Alle Benutzertabellen in der aktuellen Datenbank abrufen
Name aus Sysobjects auswählen, wobei xtype='u' und status>=0

10: Alle Felder einer Tabelle abrufen
Name aus Systemspalten auswählen, wobei id=object_id('table name')

Wählen Sie den Namen aus den Systemspalten aus, in denen die ID enthalten ist (wählen Sie die ID aus den Systemobjekten aus, in denen Typ = 'u' und Name = 'Tabellenname' ist)

Beide Methoden haben den gleichen Effekt

11: Ansichten, gespeicherte Prozeduren und Funktionen im Zusammenhang mit einer Tabelle anzeigen
wählen Sie a.* aus den Systemobjekten a und den Systemkommentaren b aus, wobei a.id = b.id und b ist. Text wie „%table name%“

12: Alle gespeicherten Prozeduren in der aktuellen Datenbank anzeigen
Name als Name der gespeicherten Prozedur aus Sysobjects auswählen, wobei xtype='P' ist

13: Alle vom Benutzer erstellten Datenbanken abfragen
select * from master..sysdatabases D where sid not in (select sid from master..syslogins wobei name='sa')
oder
dbid auswählen, AS DB_NAME vom Master benennen..sysdatabases where sid <> 0x01

14: Fragen Sie die Felder und Datentypen einer Tabelle ab
wählen Sie Spaltenname und Datentyp aus information_schema.columns aus
wobei Tabellenname = 'Tabellenname'

15: Datenoperationen zwischen verschiedenen Serverdatenbanken

--Erstellen Sie einen Verbindungsserver

exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', 'Remote-Servername oder IP-Adresse '

exec sp_addlinkedsrvlogin 'ITSV ', 'false',null, 'Benutzername', 'Passwort '

--Abfragebeispiel

wählen Sie * aus ITSV.database name.dbo.table name

--Beispiel importieren

wählen Sie * in Tabelle aus ITSV.database name.dbo.table name

aus

--Löschen Sie den Verbindungsserver, wenn er nicht mehr verwendet wird

exec sp_dropserver 'ITSV ', 'droplogins'

--Remote-/LAN-Daten verbinden (openrowset/openquery/opendatasource)

--1. openrowset

--Abfragebeispiel

wählen Sie * aus openrowset( 'SQLOLEDB', 'SQL-Servername'; 'Benutzername'; 'Passwort', Datenbankname.dbo.table-Name)

--Lokale Tabelle generieren

wählen Sie * in die Tabelle aus openrowset( 'SQLOLEDB', 'SQL-Servername'; 'Benutzername'; 'Passwort', Datenbankname.dbo.table-Name)

--Importieren Sie die lokale Tabelle in die Remote-Tabelle

openrowset( 'SQLOLEDB', 'SQL-Servername'; 'Benutzername'; 'Passwort', Datenbankname.dbo.table-Name) einfügen

wählen Sie *aus der lokalen Tabelle aus

--Lokale Tabelle aktualisieren

Update b

setze b.Column A=a.Column A

von openrowset( 'SQLOLEDB', 'SQL-Servername'; 'Benutzername'; 'Passwort', Datenbankname.dbo.table-Name) als innerer Join der lokalen Tabelle b

auf a.column1=b.column1

--Für die Verwendung von OpenQuery ist das Erstellen einer Verbindung erforderlich

--Erstellen Sie zunächst eine Verbindung, um einen Verbindungsserver zu erstellen

exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', 'Remote-Servername oder IP-Adresse '

--Abfrage

wählen Sie *

FROM openquery(ITSV, 'SELECT * FROM database.dbo.table name ')

--Importieren Sie die lokale Tabelle in die Remote-Tabelle

openquery(ITSV, 'SELECT * FROM Database.dbo.table name') einfügen

wählen Sie * aus der lokalen Tabelle aus

--Lokale Tabelle aktualisieren

Update b

setze b.Column B=a.Column B

FROM openquery(ITSV, 'SELECT * FROM Database.dbo.tablename') als

Inner Join lokaler Tabelle b auf a.Column A=b.Column A

--3. opendatasource/openrowset

AUSWÄHLEN *

FROM opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=login name;Password=password ' ).test.dbo.roy_ta

--Importieren Sie die lokale Tabelle in die Remote-Tabelle

insert opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=login name;Password=password ').Database.dbo.Table name

wählen Sie * aus der lokalen Tabelle aus

Grundfunktionen von SQL Server

Grundfunktionen von SQL Server

1. String-Funktionen Länge und Analyse

1,datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格
2,substring(expression,start,length) 取子串,字符串的下标是从“1”,start为起始位置,length为字符串长度,实际应用中以len(expression)取得其长度
3,right(char_expr,int_expr) 返回字符串右边第int_expr个字符,还用left于之相反
4,isnull( check_expression replacement_value )如果check_expression為空,則返回replacement_value的值,不為空,就返回check_expression字符操作类

5,Sp_addtype 自定義數據類型
例如:EXEC sp_addtype birthday, datetime, 'NULL'

<code><span>6,set nocount {on|off}</span></code>
Nach dem Login kopieren
<span>使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。</span>
Nach dem Login kopieren
<span>SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。</span><br>
<span>SET NOCOUNT </span><span>为 OFF 时,返回计数</span>
Nach dem Login kopieren
<code><span>常识</span></code><code></code>
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<span><code>在SQL查询中:</code><code>from</code><code>后最多可以跟多少张表或视图:</code><code>256</code><code></code></span>
Nach dem Login kopieren
<span><code>在</code><code>SQL</code><code>语句中出现 </code><code>Order by</code><code>,</code><code>查询时,</code><code>先排序,后取</code></span>
Nach dem Login kopieren
<span><code>在</code><code>SQL</code><code>中,一个字段的最大容量是</code><code>8000</code><code>,而对于</code><code>nvarchar(4000)</code><code>,</code><code>由于</code><code>nvarchar</code><code>是Unicode码。  </code></span>
Nach dem Login kopieren
<code><span>        </span></code>
Nach dem Login kopieren
<code><span>SQLServer2000</span></code><span><code>同步复制技术实现步骤</code><code></code></span>
Nach dem Login kopieren
<code><span>一、 预备工作</span></code><code></code>
Nach dem Login kopieren
<span><code>1.</code><code>发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户</code></span>
Nach dem Login kopieren
<span><code>--</code><code>管理工具</code></span>
Nach dem Login kopieren
<span><code>--</code><code>计算机管理</code></span>
Nach dem Login kopieren
<span><code>--</code><code>用户和组</code></span>
Nach dem Login kopieren
<span><code>--</code><code>右键用户</code></span>
Nach dem Login kopieren
<span><code>--</code><code>新建用户</code></span>
Nach dem Login kopieren
<span><code>--</code><code>建立一个隶属于administrator组的登陆windows的用户(SynUser)</code></span>
Nach dem Login kopieren
<span><code>2.</code><code>在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:</code></span>
Nach dem Login kopieren
<code><span>我的电脑--D:\ 新建一个目录,名为: PUB</span></code>
Nach dem Login kopieren
<span><code>--</code><code>右键这个新建的目录</code></span>
Nach dem Login kopieren
<span><code>--</code><code>属性--共享</code></span>
Nach dem Login kopieren
<span><code>--</code><code>选择"共享该文件夹"</code></span>
Nach dem Login kopieren
<span><code>--</code><code>通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户(SynUser) 具有对该文件夹的所有权限</code></span>
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<span><code>--</code><code>确定</code></span>
Nach dem Login kopieren
Nach dem Login kopieren
<span><code>3.</code><code>设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)</code></span>
Nach dem Login kopieren
<code><span>开始--程序--管理工具--服务</span></code>
Nach dem Login kopieren
<span><code>--</code><code>右键SQLSERVERAGENT</code></span>
Nach dem Login kopieren
<span><code>--</code><code>属性--登陆--选择"此账户"</code></span>
Nach dem Login kopieren
<span><code>--</code><code>输入或者选择第一步中创建的windows登录用户名(SynUser)</code></span>
Nach dem Login kopieren
<span><code>--"</code><code>密码"中输入该用户的密码</code></span>
Nach dem Login kopieren
<span><code>4.</code><code>设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)</code></span>
Nach dem Login kopieren
<code><span>企业管理器</span></code>
Nach dem Login kopieren
Nach dem Login kopieren
<span><code>--</code><code>右键SQL实例--属性</code></span>
Nach dem Login kopieren
<span><code>--</code><code>安全性--身份验证</code></span>
Nach dem Login kopieren
<span><code>--</code><code>选择"SQL Server 和 Windows"</code></span>
Nach dem Login kopieren
<span><code>--</code><code>确定</code></span>
Nach dem Login kopieren
Nach dem Login kopieren
<span><code>5.</code><code>在发布服务器和订阅服务器上互相注册</code></span>
Nach dem Login kopieren
<code><span>企业管理器</span></code>
Nach dem Login kopieren
Nach dem Login kopieren
<span><code>--</code><code>右键SQL Server组</code></span>
Nach dem Login kopieren
<span><code>--</code><code>新建SQL Server注册...</code></span>
Nach dem Login kopieren
<span><code>--</code><code>下一步--可用的服务器中,输入你要注册的远程服务器名 --添加</code></span>
Nach dem Login kopieren
<span><code>--</code><code>下一步--连接使用,选择第二个"SQL Server身份验证"</code></span>
Nach dem Login kopieren
<span><code>--</code><code>下一步--输入用户名和密码(SynUser)</code></span>
Nach dem Login kopieren
<span><code>--</code><code>下一步--选择SQL Server组,也可以创建一个新组</code></span>
Nach dem Login kopieren
<span><code>--</code><code>下一步--完成</code></span>
Nach dem Login kopieren
<span><code>6.</code><code>对于只能用IP,不能用计算机名的,为其注册服务器别名(此步在实施中没用到)</code></span>
Nach dem Login kopieren
<span><code> (</code><code>在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP)</code></span>
Nach dem Login kopieren
<code><span>开始--程序--Microsoft SQL Server--客户端网络实用工具</span></code>
Nach dem Login kopieren
<span><code>--</code><code>别名--添加</code></span>
Nach dem Login kopieren
<span><code>--</code><code>网络库选择"tcp/ip"--服务器别名输入SQL服务器名</code></span>
Nach dem Login kopieren
<span><code>--</code><code>连接参数--服务器名称中输入SQL服务器ip地址</code></span>
Nach dem Login kopieren
<span><code>--</code><code>如果你修改了SQL的端口,取消选择"动态决定端口",并输入对应的端口号</code></span>
Nach dem Login kopieren
<code><span>二、 正式配置</span></code><code></code>
Nach dem Login kopieren
<span><code>1</code><code>、配置发布服务器</code></span>
Nach dem Login kopieren
<code><span>打开企业管理器,在发布服务器(B、C、D)上执行以下步骤:</span></code>
Nach dem Login kopieren
<span><code>(1) </code><code>从[工具]下拉菜单的[复制]子菜单中选择[配置发布、订阅服务器和分发]出现配置发布和分发向导 </code></span>
Nach dem Login kopieren
<span><code>(2) [</code><code>下一步] 选择分发服务器 可以选择把发布服务器自己作为分发服务器或者其他sql的服务器(选择自己)</code></span>
Nach dem Login kopieren
<span><code>(3) [</code><code>下一步] 设置快照文件夹</code></span>
Nach dem Login kopieren
<code><span>采用默认\\servername\Pub</span></code>
Nach dem Login kopieren
<span><code>(4) [</code><code>下一步] 自定义配置 </code></span>
Nach dem Login kopieren
<code><span>可以选择:是,让我设置分发数据库属性启用发布服务器或设置发布设置</span></code>
Nach dem Login kopieren
<code><span>否,使用下列默认设置(推荐)</span></code>
Nach dem Login kopieren
<span><code>(5) [</code><code>下一步] 设置分发数据库名称和位置 采用默认值</code></span>
Nach dem Login kopieren
<span><code>(6) [</code><code>下一步] 启用发布服务器 选择作为发布的服务器</code></span>
Nach dem Login kopieren
<span>(7) [下一步] 选择需要发布的数据库和发布类型</span>
Nach dem Login kopieren
<span><code>(8) [</code><code>下一步] 选择注册订阅服务器</code></span>
Nach dem Login kopieren
<span><code>(9) [</code><code>下一步] 完成配置</code></span>
Nach dem Login kopieren
<span><code>2</code><code>、创建出版物</code></span>
Nach dem Login kopieren
<code><span>发布服务器B、C、D上</span></code>
Nach dem Login kopieren
<span><code>(1)</code><code>从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令</code></span>
Nach dem Login kopieren
<span><code>(2)</code><code>选择要创建出版物的数据库,然后单击[创建发布]</code></span>
Nach dem Login kopieren
<span><code>(3)</code><code>在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)</code></span>
Nach dem Login kopieren
<span><code>(4)</code><code>单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,</code></span>
Nach dem Login kopieren
<span><code>SQLSERVER</code><code>允许在不同的数据库如 orACLE或ACCESS之间进行数据复制。</code></span>
Nach dem Login kopieren
<code><span>但是在这里我们选择运行"SQL SERVER 2000"的数据库服务器</span></code>
Nach dem Login kopieren
<span><code>(5)</code><code>单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表</code></span>
Nach dem Login kopieren
<code><span>注意: 如果前面选择了事务发布 则再这一步中只能选择带有主键的表</span></code>
Nach dem Login kopieren
<span><code>(6)</code><code>选择发布名称和描述</code></span>
Nach dem Login kopieren
<span><code>(7)</code><code>自定义发布属性 向导提供的选择:</code></span>
Nach dem Login kopieren
<code><span>是 我将自定义数据筛选,启用匿名订阅和或其他自定义属性</span></code>
Nach dem Login kopieren
<code><span>否 根据指定方式创建发布 (建议采用自定义的方式)</span></code>
Nach dem Login kopieren
<span><code>(8)[</code><code>下一步] 选择筛选发布的方式 </code></span>
Nach dem Login kopieren
<span><code>(9)[</code><code>下一步] 可以选择是否允许匿名订阅</code></span>
Nach dem Login kopieren
<span><code>1)</code><code>如果选择署名订阅,则需要在发布服务器上添加订阅服务器</code></span>
Nach dem Login kopieren
<code><span>方法: [工具]->[复制]->[配置发布、订阅服务器和分发的属性]->[订阅服务器] 中添加</span></code>
Nach dem Login kopieren
<code><span>否则在订阅服务器上请求订阅时会出现的提示:改发布不允许匿名订阅</span></code>
Nach dem Login kopieren
<code><span>如果仍然需要匿名订阅则用以下解决办法 </span></code>
Nach dem Login kopieren
<span><code>[</code><code>企业管理器]->[复制]->[发布内容]->[属性]->[订阅选项] 选择允许匿名请求订阅</code></span>
Nach dem Login kopieren
<span><code>2)</code><code>如果选择匿名订阅,则配置订阅服务器时不会出现以上提示</code></span>
Nach dem Login kopieren
<span><code>(10)[</code><code>下一步] 设置快照 代理程序调度</code></span>
Nach dem Login kopieren
<span><code>(11)[</code><code>下一步] 完成配置</code></span>
Nach dem Login kopieren
<code><span>当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库</span></code>
Nach dem Login kopieren
<code><span>有数据 </span></code>
Nach dem Login kopieren
<span><code>srv1.</code><code>库名..author有字段:id,name,phone, </code></span>
Nach dem Login kopieren
<span><code>srv2.</code><code>库名..author有字段:id,name,telphone,adress </code></span>
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<code><span>要求: </span></code>
Nach dem Login kopieren
<span><code>srv1.</code><code>库名..author增加记录则srv1.库名..author记录增加 </code></span>
Nach dem Login kopieren
<span><code>srv1.</code><code>库名..author的phone字段更新,则srv1.库名..author对应字段telphone更新 </code></span>
Nach dem Login kopieren
<code><span>--*/ </span></code>
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<span><code>--</code><code>大致的处理步骤 </code></span>
Nach dem Login kopieren
<span><code>--1.</code><code>在 srv1 上创建连接服务器,以便在 srv1 中操作 srv2,实现同步 </code></span>
Nach dem Login kopieren
<span><code>exec sp_addlinkedserver 'srv2','','SQLOLEDB','srv2</code><code>的sql实例名或ip' </code></span>
Nach dem Login kopieren
<span><code>exec sp_addlinkedsrvlogin 'srv2','false',null,'</code><code>用户名','密码' </code></span>
Nach dem Login kopieren
<code><span>go</span></code>
Nach dem Login kopieren
<span><code>--2.</code><code>在 srv1 和 srv2 这两台电脑中,启动 msdtc(分布式事务处理服务),并且设置为自动启动</code></span>
Nach dem Login kopieren
<code><span>。我的电脑--控制面板--管理工具--服务--右键 Distributed Transaction Coordinator--属性--启动--并将启动类型设置为自动启动 </span></code>
Nach dem Login kopieren
<code><span>go </span></code>
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<span><code>--</code><code>然后创建一个作业定时调用上面的同步处理存储过程就行了 </code></span>
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<code><span>企业管理器 </span></code>
Nach dem Login kopieren
<span><code>--</code><code>管理 </code></span>
Nach dem Login kopieren
<span><code>--SQL Server</code><code>代理 </code></span>
Nach dem Login kopieren
<span><code>--</code><code>右键作业 </code></span>
Nach dem Login kopieren
<span><code>--</code><code>新建作业 </code></span>
Nach dem Login kopieren
<span><code>--"</code><code>常规"项中输入作业名称 </code></span>
Nach dem Login kopieren
<span><code>--"</code><code>步骤"项 </code></span>
Nach dem Login kopieren
<span><code>--</code><code>新建 </code></span>
Nach dem Login kopieren
<span><code>--"</code><code>步骤名"中输入步骤名 </code></span>
Nach dem Login kopieren
<span><code>--"</code><code>类型"中选择"Transact-SQL 脚本(TSQL)" </code></span>
Nach dem Login kopieren
<span><code>--"</code><code>数据库"选择执行命令的数据库 </code></span>
Nach dem Login kopieren
<span><code>--"</code><code>命令"中输入要执行的语句: exec p_process </code></span>
Nach dem Login kopieren
<span><code>--</code><code>确定 </code></span>
Nach dem Login kopieren
<span><code>--"</code><code>调度"项 </code></span>
Nach dem Login kopieren
<span><code>--</code><code>新建调度 </code></span>
Nach dem Login kopieren
<span><code>--"</code><code>名称"中输入调度名称 </code></span>
Nach dem Login kopieren
<span><code>--"</code><code>调度类型"中选择你的作业执行安排 </code></span>
Nach dem Login kopieren
<span><code>--</code><code>如果选择"反复出现" </code></span>
Nach dem Login kopieren
<span><code>--</code><code>点"更改"来设置你的时间安排 </code></span>
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<code><span>然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行 </span></code>
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<code><span>设置方法: </span></code>
Nach dem Login kopieren
<code><span>我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定. </span></code>
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<span><code>--3.</code><code>实现同步处理的方法2,定时同步 </code></span>
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<span><code>--</code><code>在srv1中创建如下的同步处理存储过程 </code></span>
Nach dem Login kopieren
<code><span>create proc p_process </span></code>
Nach dem Login kopieren
<code><span>as </span></code>
Nach dem Login kopieren
<span><code>--</code><code>更新修改过的数据 </code></span>
Nach dem Login kopieren
<code><span>update b set name=i.name,telphone=i.telphone </span></code>
Nach dem Login kopieren
<span><code>from srv2.</code><code>库名.dbo.author b,author i </code></span>
Nach dem Login kopieren
<code><span>where b.id=i.id and</span></code>
Nach dem Login kopieren
<code><span>(b.name <> i.name or b.telphone <> i.telphone) </span></code>
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<span><code>--</code><code>插入新增的数据 </code></span>
Nach dem Login kopieren
<span><code>insert srv2.</code><code>库名.dbo.author(id,name,telphone) </code></span>
Nach dem Login kopieren
<code><span>select id,name,telphone from author i </span></code>
Nach dem Login kopieren
<code><span>where not exists( </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
<span><code>select * from srv2.</code><code>库名.dbo.author where id=i.id) </code></span>
Nach dem Login kopieren
<code><span> </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<span><code>--</code><code>删除已经删除的数据(如果需要的话) </code></span>
Nach dem Login kopieren
<code><span>delete b </span></code>
Nach dem Login kopieren
<span><code>from srv2.</code><code>库名.dbo.author b </code></span>
Nach dem Login kopieren
<code><span>where not exists( </span></code>
Nach dem Login kopieren
Nach dem Login kopieren
<code><span>select * from author where id=b.id)</span></code>
Nach dem Login kopieren
<span>go</span>
Nach dem Login kopieren

以上就介绍了经典SQL语句大全,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage