Um schnell mall einen Überblick über die umfangreichsten Tabellen in einer Datenbank zu erhalten, kann man folgendes Skript einsetzen. IMHO, ist die direkte Abfrage der Systemtabellen in so einem Fall zulässig.
SET NOCOUNT ON
CREATE TABLE strip_t
(
col VARCHAR(30)
)
INSERT INTO strip_t VALUES ('Frank')
INSERT INTO strip_t VALUES ('Frank!')
INSERT INTO strip_t VALUES ('Fr^ank')
INSERT INTO strip_t VALUES ('Fran&k')
INSERT INTO strip_t VALUES ('Fran$k')
SET NOCOUNT OFF
SELECT
*
FROM
strip_t
WHERE
col
LIKE '%[^A-Za-z0-9]%'
col
------------------------------
Frank!
Fr^ank
Fran&k
Fran$k
(4 row(s) affected)
Als Gegenprobe:
SELECT
*
FROM
strip_t
WHERE
col
NOT LIKE '%[^A-Za-z0-9]%'
GO
DROP TABLE strip_t
col
------------------------------
Frank
(1 row(s) affected)
Einen Nachteil gibt es doch: Dies funktioniert nicht mit allen Collations. Also, unbedingt gründlich vorher testen!!!
DECLARE @time INT
SET @time = 7382
SELECT
@time / 3600 AS Stunden
, (@time / 60)% 60 AS Minuten
, @time % 60 AS Sekunden
Stunden Minuten Sekunden
----------- ----------- -----------
2 3 2
(1 row(s) affected)
SELECT RIGHT(STUFF(CONVERT(CHAR(22),GETDATE(),13),21,4,' '),9) --------- 10:14:40 (1 row(s) affected) --Oder SELECT CONVERT(CHAR(8), GETDATE(), 8) -------- 10:14:40 (1 row(s) affected) --Oder SELECT CONVERT(CHAR(8), GETDATE(), 108) -------- 10:14:40 (1 row(s) affected)
Falls man auch noch die Millisekunden braucht, kann man:
SELECT CONVERT(CHAR(12),GETDATE(),114) ------------ 10:20:16:033 (1 row(s) affected)
ausführen.
USE Northwind GO SELECT n.dow , ISNULL(SUM(o.Freight),0) FROM Orders o RIGHT JOIN (SELECT 1 dow UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7) n ON DATEPART(w,Orderdate) = n.dow GROUP BY n.dow dow ----------- --------------------- 1 13772.8400 2 12858.7800 3 11069.5500 4 12114.7200 5 15126.8000 6 .0000 7 .0000 (7 row(s) affected) Warnung: NULL-Wert wird durch eine Aggregat- oder eine andere SET-Operation gelöscht.
Danke an Jonathan Van Houtte.
SELECT
*
INTO
Trace_Table_Name
FROM :: fn_trace_gettable('c:\MyTrace.trc', DEFAULT)
BOL beschreibt ausführlicher die fn_trace_gettable Funktion.
Dies ist eine oft gestellte Frage in SQL Server Communities. Die Antwort lautet...
Die einfachste Lösung hierfür ist es, den Clustered Index auf dieser anderen Filegroup neu zu erstellen. Die Verwendung der DROP EXISTING Option beschleunigt diese Operation.