Si comme moi vous avez besoin d’”insérer des données en bloc” dans SQL Server et que l’auto increment vous pose problèmes, vous pouvez utiliser la syntax T-SQL suivante pour désactiver le temps de vos insertions la gestion du numéro auto. (Il faut le réactiver par la suite.)
SET IDENTITY_INSERT [ database. [ owner. ] ] { table } { ON | OFF }
Articles taggés ‘sql server
Quant sur SQL server 2000 le journal des transactions a la folie des grandeurs (genre taille de 6.5Go pour 120 Mo effectivements utilisés), il devient intéressant de le tronquer.
Je vous passe le chapitre de la sauvegarde préalable à ce genre d’opération.
Voici donc la commande magique :
backup log NomDeLaBase with truncate_only
DBCC SHRINKFILE (’NomDeLUniteLogique_Log’,400)
Sur SQL Server je n’arrive pas à trouver l’option qui permet de modifier le créateur de toutes les tables d’une base.
Du coup je me retrouve avec des tables dynamiques (dont j’ai oublié de préfixer avec “dbo.” lors de leurs création) invisibles par les autres connexions de mon serveur.
Pour remédier à ça j’ai fait un petit script à lancer dans l’analyseur de requête qui change le propriétaire de toutes les tables de la base en cours.
Je pense que ça peut aider !
[sql]DECLARE @name sysname
DECLARE @id int
DECLARE @LaRequette varchar(8000)
DECLARE @oldUser varchar(255)
SET @oldUser = ‘user_copix’
DECLARE TESTCURSEUR CURSOR
FOR select TABLES.name,TABLES.id FROM dbo.sysobjects as TABLES WHERE TABLES.xtype = ‘U’
– Ouverture du Curseur
OPEN TESTCURSEUR
FETCH NEXT FROM TESTCURSEUR INTO @name, @id
– Bouclage sur le curseur défini
WHILE @@FETCH_STATUS = 0
BEGIN
SET @LaRequette = ’sp_changeobjectowner ”’+@oldUser+’.’ + @name + ”’, dbo’
PRINT ‘Requette : ‘+ @LaRequette
Execute (@LaRequette)
FETCH NEXT FROM TESTCURSEUR INTO @name, @id
END
CLOSE TESTCURSEUR
DEALLOCATE TESTCURSEUR
[/sql]
SQL server integration
There are some known problems with php4 mssql function for SQL server support.
Actually with Win32 + Apache + PHP and SQL Server for Database non standard characters such as french accent aren’t well encoded with mssql functions. Instead of accents, characters stored in DB are not alpha characteres such as coma “,”.
It is often said that there isn’t any known problems in Linux + Apache + Php because of FreeTDS use instade of SQL server DLL. But up to now I haven’t tested that way yet.
So for Win32 + Apache + PHP + SQL server I recommand to use ODBC driver + PHP odbc functions (odbc_connect, odbc_exec) rather than SQL server DLL + PHP mssql functions.
I have’nt yet encounterded any slow down issue.
Slow down issue are real, so I had to find another solution, and a co-worker finally find the solution for this encoding troubleshouting : it’s a problem linked with SQL server entreprise manager connectivity.
To fix this encoding behavior, you have to open Client Network Utility app, (in french Utilitaire de réseau du client SQL server) and to un-checked “Conversion automatique ANSI vers OEM” in “Options DB-Library” tab.


Commentaires récents