Double Possible:
Les Fonctions cachées de SQL ServerJe crois que cette question a mal été fermé comme une copie exacte. 19 personnes ont cette question ajoutés à vos favoris, donc je ne crois pas que c'est une hypothèse erronée. Dans la question, je ne demande pas à propos de fonctionnalités cachées comme dans l'autre question, je vais demander sur les fonctions/commandes que la plupart des développeurs devrait le savez sans doute, mais qui ne savent pas. S'il vous plaît voter pour rouvrir cette question. Il est Wiki de la Communauté, donc il n'ya aucune raison pourquoi il devrait être fermé. Merci
J'ai travaillé en tant que .NET développeur pour un certain temps maintenant, mais surtout contre une base de données SQL Server pour un peu plus de 3 ans maintenant. J'ai l'impression que j'ai une assez bonne connaissance de SQL Server à partir d'une perspective de développement, mais j'ai honte d'admettre que je viens d'apprendre aujourd'hui à propos de "AVEC des LIENS" de cette réponse - http://stackoverflow.com/questions/1236394/top-5-with-most-friends/1236414#1236414.
Il est humiliant de voir les questions et réponses de cette SORTE, car il me permet de réaliser que je ne sais vraiment pas autant que je pense que je fais et permet de re-dynamiser ma volonté pour en savoir plus, j'ai donc pensé quoi de mieux que de poser les masses d'experts pour l'entrée sur d'autres pratique des commandes/fonctions.
Quelle est la caractéristique la plus utile/commande que le développeur moyen est probablement pas au courant de?
BTW - si vous êtes comme je l'étais, et je ne sais quoi "AVEC des LIENS" est, ici, c'est une bonne explication. Vous verrez rapidement pourquoi j'avais honte, j'étais pas au courant de cela. J'ai pu voir où elle pourrait être utile. - http://harriyott.com/2007/06/with-ties-sql-server-tip.aspx
Je me rends compte que c'est une question subjective, de sorte s'il vous plaît permettre au moins quelques réponses avant de le fermer. :) Je vais essayer de modifier ma question de garder une liste de votre réponse. Merci
[EDIT] - Voici un résumé des réponses, Veuillez défiler vers le bas pour plus d'informations. Merci encore les gars et les filles.
- FUSION - UNE seule commande pour INSÉRER / mettre à JOUR / SUPPRIMER dans une table à partir d'une source de ligne.
- Fonctionnalité FILESTREAM de SQL Server 2008 qui permet le stockage et l'accès efficace aux données BLOB à l'aide d'une combinaison de SQL Server 2008 et le système de fichiers NTFS
- FONTE d'obtenir une date, sans un temps partie
- Groupe Par - je dois vous dire que vous devez certainement savoir ce déjà
- SQL Server Management Studio
- Les Transactions
- Le partage de portée locale temp des tables imbriquées les appels de procédure
- INSERT INTO
- MSDN
- Les JOINTURES
- PIVOT et UNPIVOT
- AVEC(FORCESEEK) - les forces de l'optimiseur de requête à utiliser uniquement une opération de recherche d'index comme le chemin d'accès aux données dans le tableau.
- POUR XML
- FUSIONNER
- Comment faire pour réduire la base de données et les fichiers journaux
- Information_Schema
- SET IMPLICIT_TRANSACTIONS dans Management Studio 2005
- Les tables dérivées et les expressions de table communes (expressions de table communes)
- Clause OUTPUT - permet d'accéder à la "virtuel" tables appelé inserted et deleted (comme dans les déclencheurs)
- CTRL + 0 pour insérer la valeur null
- Spatiale de Données dans SQL Server 2008
Réponses
Trop de publicités?FileStream dans SQL Server 2008: FILESTREAM fonctionnalité de SQL Server 2008 qui permet le stockage et l'accès efficace aux données BLOB à l'aide d'une combinaison de SQL Server 2008 et le système de fichiers NTFS.
La création d'un Tableau pour Stocker les Données FILESTREAM
Une fois la base de données a un groupe de fichiers FILESTREAM, les tableaux peuvent être créés qui contiennent des colonnes FILESTREAM. Comme mentionné plus tôt, une colonne FILESTREAM est définie comme une colonne varbinary (max) qui a l'attribut FILESTREAM. Le code suivant crée une table avec une seule colonne FILESTREAM
USE Production;
GO
CREATE TABLE DocumentStore (
DocumentID INT IDENTITY PRIMARY KEY,
Document VARBINARY (MAX) FILESTREAM NULL,
DocGUID UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL
UNIQUE DEFAULT NEWID ())
FILESTREAM_ON FileStreamGroup1;
GO
-
En
SQL Server 2008
(et enOracle 10g
):MERGE
.Une seule commande pour
INSERT / UPDATE / DELETE
dans une table à partir d'une source de ligne. -
Pour générer une liste de nombres à partir de
1
de31
(par exemple, pour un calendary):WITH cal AS ( SELECT 1 AS day UNION ALL SELECT day + 1 FROM cal WHERE day <= 30 )
-
Une seule colonne de l'index avec
DESC
clause dans un cluster de table peut être utilisée pour le tricolumn DESC, cluster_key ASC
:CREATE INDEX ix_column_desc ON mytable (column DESC) SELECT TOP 10 * FROM mytable ORDER BY column DESC, pk -- Uses the index SELECT TOP 10 * FROM mytable ORDER BY column, pk -- Doesn't use the index
-
CROSS APPLY
etOUTER APPLY
: permet de joindre rowsources qui dépendent des valeurs des tables jointes:SELECT * FROM mytable CROSS APPLY my_tvf(mytable.column1) tvf SELECT * FROM mytable CROSS APPLY ( SELECT TOP 5 * FROM othertable WHERE othertable.column2 = mytable.column1 ) q
-
EXCEPT
etINTERSECT
opérateurs: permettent de sélectionner les conditions qui incluentNULL
sDECLARE @var1 INT DECLARE @var2 INT DECLARE @var3 INT SET @var1 = 1 SET @var2 = NULL SET @var2 = NULL SELECT col1, col2, col3 FROM mytable INTERSECT SELECT @val1, @val2, @val3 -- selects rows with `col1 = 1`, `col2 IS NULL` and `col3 IS NULL` SELECT col1, col2, col3 FROM mytable EXCEPT SELECT @val1, @val2, @val3 -- selects all other rows
-
WITH ROLLUP
clause de: sélectionne un grand total de toutes les lignes groupéesSELECT month, SUM(sale) FROM mytable GROUP BY month WITH ROLLUP Month SUM(sale) --- --- Jan 10,000 Feb 20,000 Mar 30,000 NULL 60,000 -- a total due to `WITH ROLLUP`
FUSIONNER() , il accepte les champs et une valeur à utiliser au cas où les champs sont nuls. Par exemple, si vous avez une table avec la ville, État, code Postal, vous pouvez utiliser FUSIONNENT() pour renvoyer les adresses comme de simples chaînes de caractères, c'est à dire:
Ville | État | Code Postal
Houston | Texas | 77058
Beaumont | Texas | NULL
NULL | Ohio | NULL
si vous exécutez cette requête sur la table:
select city + ‘ ‘ + COALESCE(State,'')+ ‘ ‘+COALESCE(Zipcode, ‘')
Serait de retour:
Houston, Texas, 77058
Beaumont, Texas
L'Ohio
Vous pouvez également l'utiliser pour pivot de données, c'est à dire:
DECLARE @addresses VARCHAR(MAX)
SELECT @addresses = select city + ‘ ‘ + COALESCE(State,'')+ ‘ ‘
+COALESCE(Zipcode, ‘') + ‘,' FROM tb_addresses
SELECT @addresses
Serait de retour: Houston, Texas, 77058, Beaumont Au Texas, Ohio