SQL Server - La FAQConsultez toutes les FAQ

Nombre d'auteurs : 13, nombre de questions : 119, dernière mise à jour : 31 mai 2011  Ajouter une question

 

Question / réponses à tout ce que vous avez toujours voulu savoir sur Microsoft SQL Server sans jamais oser le demander


SommaireAdministration de la base de donnéesConnexions au serveur (10)
précédent sommaire suivant
 

SET LOCK_TIMEOUT permet à une application de définir le délai maximal pendant lequel
une instruction doit attendre en cas de ressource bloquée. Si l'attente d'une instruction
dépasse la valeur du paramètre LOCK_TIMEOUT, l'instruction bloquée est automatiquement
annulée, et un message d'erreur renvoyé à l'application.
Cette valeur est fixée à -1 au début d'une connexion.

Code tsql : Sélectionner tout
1
2
--Fixe la valeur du lock_timeout à 1,8 seconde 
SET LOCK_TIMEOUT 1800
Pour connaître la valeur courante, on utilise la variable @@LOCK_TIMEOUT

Code tsql : Sélectionner tout
1
2
--Consulter la valeur du lock timeout 
SELECT @@LOCK_TIMEOUT AS LOCK_TIMEOUT

Mis à jour le 28 septembre 2005 WOLO Laurent

Si vous n'arrivez pas à vous connecter à une base de données de votre serveur, procedez comme ci-dessous.

  • Si vous utilisez le nom de la machine comme source de données, vérifiez que votre réseau
    possède un serveur de nom de domaine.
    Dans le cas contraire, utilisez l'adresse IP publique de votre serveur de base de données.
  • Attention, il arrive que vous vous connectez sous windows avec un utilisateur qu possède moins de droits
    pour modifier les données de la base de données de ce serveur.
  • Vérifiez que vous utilisez le bon type d'autentification SQL Serveur pour votre chaîne de connexion
  • Vérifiez que votre serveur ne se trouve pas derrière un serveur proxy.
  • Vérifier que votre serveur ne se trouve pas derrière un Firewall.

Mis à jour le 28 septembre 2005 WOLO Laurent

Pour se connecter à un serveur SQL Serveur qui tourne derrière un serveur proxy,
Ouvrez l'utilitaire Server Network Utility
Dans l'onglet général, cochez la case enable Winsock proxy
puis saisissez l'adresse du serveur proxy et son port d'écoute.

Mis à jour le 28 septembre 2005 WOLO Laurent

Pour se connecter à un serveur dans ces conditions, Configurez un numero de port (1433) par défaut puis demandez à votre administrateur réseau de libérer le trafique de ce port sur son firewall

il est déconseillé d'ouvrir une brèche dans le firewall si MS-SQL utilise le port par défaut. reconfigurer le port avant tout.

Mis à jour le 28 septembre 2005 WOLO Laurent

Code tsql : Sélectionner tout
1
2
3
sp_configure connections, n 
RECONFIGURE WITH OVERRIDE 
--n est le nombre de connexions souhaitées.

Mis à jour le 28 septembre 2005 Drahu fadace

Ce méssage intervient lorsque le compte configuré pour démarrer le service MSSQLSERVER échoue dans le démarrage d'une session Windows. Allez-y dans le Gestionnaire des Services, Cliquez sur le service MSSQLSERVER, puis changer le compte de démarrage du service. NB: Il est plus simple d'utiliser le compte LocalSystem.

Mis à jour le 3 mai 2006 WOLO Laurent

Code tsql : Sélectionner tout
1
2
3
4
5
select CASE 
WHEN convert(sysname, serverproperty('Edition')) IS NULL THEN 'ERREUR' 
WHEN convert(sysname, serverproperty('Edition'))=0 THEN 'SECURITE INTEGREE' 
WHEN convert(sysname, serverproperty('Edition'))=1 THEN 'SECURITE NON INTEGREE' 
END AS AUTHENTIFICATION

Mis à jour le 28 septembre 2005 WOLO Laurent

Il s'agit d'un problème lié au DNS

  • Utiliser l'adresse IP\Instance du serveur à la place de NomServeur\Instance
  • Dans la fenêtre de configuration IP du protocole TCP/IP de votre carte réseau, ajouter l'adresse du DNS primaire, en utilisant celui de votre contôleur de domaine.

Mis à jour le 18 juillet 2006 WOLO Laurent

Cette commande, possible depuis MS-SQL2005, tue les connexions en cours (y.c. rollback) et garde l'unique connexion en cours sur la base.

Code tsql : Sélectionner tout
ALTER DATABASE 'MaBase' SET SINGLE_USER WITH ROLLBACK IMMEDIATE
Pour le retour à un accès normal :

Code tsql : Sélectionner tout
ALTER DATABASE 'MaBase' SET MULTI_USER
Autrement, il reste toujours la possibilité du kill via curseur

Code tsql : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
CREATE PROC sp_killuser (@MaBase varchar(30)=NULL) 
AS  
BEGIN 
Declare @SQL_Text nvarchar(20)  
 
declare Process_cur CURSOR FOR  
   select convert(varchar(5), spid)  
   from master..sysprocesses  
   where dbid = db_id(coalesce(@MaBase,db_name())  
   and spid <> @@spid  
 
Declare @spid as varchar(4) 
 
OPEN Process_cur  
 
FETCH NEXT FROM Process_cur INTO @spid 
 
WHILE (@@FETCH_STATUS = 0)  
begin  
  set @SQL_Text = 'KILL '+ @spid  
  exec sp_executesql @T  
  FETCH NEXT FROM Process_cur into  @spid;  
end  
 
CLOSE Process_cur 
DEALLOCATE Process_cur   
END  
GO

Mis à jour le 18 juillet 2006 fadace SQLpro

Démarrez le serveur avec l'option -T3608.

Ce traceflag permet de ne démarrer le serveur qu'avec la base master. Notez cependant que sans la base tempdb, quasiment aucune procédure stockée n'est utilisable.

Mis à jour le 6 avril 2007 fadace

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2017 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
Contacter le responsable de la rubrique SQL-Server