Tag: "coding"

Dynamisches SQL : Fluch und Segen

Posted on Jul 16, 2004 von in SQL Server

Original von Erland Sommarskogdeutsche Übersetzung von Frank Kalis

Wenn Sie die verschiedenen Newsgroups über Microsoft SQL Server verfolgen, wird Ihnen auffallen, dass häufig Fragen gestellt werden, warum die Statements:

   SELECT * FROM @tablename
   SELECT @colname FROM tbl
   SELECT * FROM tbl WHERE x IN (@list)

nicht funktionieren.

Ganze Geschichte »

2 Kommentare »

Zufällig ausgewählte Datensätze zurückgeben

Posted on Jul 13, 2004 von in SQL Server

Die Anforderung, zufällig ausgewählte Datensätze zurückzugeben, findet man recht häufig. Analyse einer Stichprobe ist eine wahre Spielwiese für Statistiker. In T-SQL kann dies recht einfach umgesetzt werden.

Ganze Geschichte »

Dynamische Suchbedingungen in T-SQL

Posted on Jul 13, 2004 von in SQL Server

Original von Erland Sommarskog; deutsche Übersetzung von Frank Kalis

Einführung

Eine sehr weitverbreitete Anforderung an ein Informationssystem ist es, eine oder mehrere Funktionen zu haben, bei denen der Benutzer in der Lage ist, die Daten durch freie Auswahl möglichst vieler verschiedener Kriterien zu durchsuchen. Dies ist eine enorme Herausforderung, da Sie nicht nur den gewünschten Output produzieren müssen, sondern auch die Antwortzeiten innerhalb eines akzeptablen Zeitrahmens halten müssen, zumindest bei häufig verwendeten Suchen. Zu guter Letzt muss der Code leicht zu warten sein, damit neue Wünsche und Anforderungen leicht implementiert werden können.

Ganze Geschichte »

Nicht-alphanumerische Zeichen finden

Posted on Jul 13, 2004 von in SQL Server
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!!!

Laufende Summe in T-SQL

Posted on Jul 13, 2004 von in SQL Server
IF OBJECT_ID('lfdsum_t') IS NOT NULL
     DROP TABLE lfdsum_t
GO
CREATE TABLE lfdsum_t (col1 int)
INSERT INTO lfdsum_t values (1);
INSERT INTO lfdsum_t values (2);
INSERT INTO lfdsum_t values (3);
INSERT INTO lfdsum_t values (4);
INSERT INTO lfdsum_t values (5);

SELECT 
     a.COL1
     ,(SELECT 
          Sum(b.col1)
     FROM
          lfdsum_t b
WHERE 
          b.col1 <= a.col1) lfd_Sum
FROM 
     lfdsum_t a
DROP TABLE lfdsum_t

COL1        lfd_Sum     
----------- ----------- 
1           1
2           3
3           6
4           10
5           15

(5 row(s) affected)

Zugegebenermassen bin ich mir nicht sicher, ob der technische Begriff dafür 'laufende Summe' ist. Für Anregungen zu einem treffenderen Begriff bin ich dankbar.

Wofür ist xp_servicecontrol?

Posted on Jul 13, 2004 von in SQL Server

xp_servicecontrol ist eine undokumentierte erweiterte Prozedur, die zur Kontrolle von Diensten auf der SQL Server Maschine eingesetzt werden kann.

Ganze Geschichte »

Umwandeln von Hexadezimal nach Integer

Posted on Jul 13, 2004 von in SQL Server
SET NOCOUNT ON
DECLARE @hex VARCHAR(10)
DECLARE @stmt NVARCHAR(255)
DECLARE @int INT 
SET @hex = '0x0000008A' 
SELECT @stmt = N'SELECT @int = CONVERT( int , ' + @hex + ' )' 
EXEC sp_ExecuteSql @stmt, N' @int Int Out', @int OUT SELECT @int GO
GO

GO          
----------- 
138

Ganze Geschichte »

Unterschiede zwischen DECIMAL und NUMERIC

Posted on Jul 13, 2004 von in SQL Server

Der Unterschied zwischen beiden Datentypen ist mehr als subtil im SQL 92 Standard.

Ganze Geschichte »