Searching for a string in an all tables, rows and columns of a database

Submitted by Jochus on Tue, 14/04/2015 - 20:37 | Posted in: Database
Posted in

Script has been developed and tested for SQL Server (version 2012)

DECLARE
    @search_string  VARCHAR(100),
    @TABLE_NAME     SYSNAME,
    @table_id       INT,
    @column_name    SYSNAME,
    @sql_string     VARCHAR(2000)
 
SET @search_string = 'FOOBAR'
 
DECLARE tables_cur CURSOR FOR SELECT name, object_id FROM sys.objects WHERE TYPE = 'U'
OPEN tables_cur
FETCH NEXT FROM tables_cur INTO @TABLE_NAME, @table_id
 
WHILE (@@FETCH_STATUS = 0)
BEGIN
    DECLARE columns_cur CURSOR FOR SELECT name FROM sys.columns WHERE object_id = @table_id AND system_type_id IN (167, 175, 231, 239)
    OPEN columns_cur
 
    FETCH NEXT FROM columns_cur INTO @column_name
    WHILE (@@FETCH_STATUS = 0)
    BEGIN
        SET @sql_string = 'IF EXISTS (SELECT * FROM ' + @TABLE_NAME + ' WHERE [' + @column_name + '] LIKE ''%' + @search_string + '%'') PRINT ''' + @TABLE_NAME + ', ' + @column_name + ''''
 
        EXECUTE(@sql_string)
 
        FETCH NEXT FROM columns_cur INTO @column_name
    END
 
    CLOSE columns_cur
    DEALLOCATE columns_cur
 
    FETCH NEXT FROM tables_cur INTO @TABLE_NAME, @table_id
END
 
CLOSE tables_cur
DEALLOCATE tables_cur

Dropping a constraint when the name can vary from database to database

Submitted by Jochus on Tue, 14/04/2015 - 20:14 | Posted in: Database
Posted in


DECLARE @TABLE_NAME VARCHAR(255)
DECLARE @col_name VARCHAR(255)
DECLARE @command  VARCHAR(1000)
 
SET @TABLE_NAME = '$YOUR_TABLE_NAME'
SET @column_name = '$YOUR_COLUMN_NAME'
 
SELECT @command = 'ALTER TABLE ' + @TABLE_NAME + ' DROP CONSTRAINT ' + d.name FROM sys.tables t JOIN sys.default_constraints d ON d.parent_object_id = t.object_id JOIN sys.columns c ON c.object_id = t.object_id AND c.column_id = d.parent_column_id WHERE t.name = @TABLE_NAME AND c.name = @column_name
 
EXECUTE (@command)

OS X 10.10 Yosemite and environment variables

Submitted by Jochus on Tue, 14/04/2015 - 18:59 | Posted in: Mac
Posted in


In previous releases of OS X (Mavericks, Mountain Lion, Lion, ...), environment variables are configured in the /etc/launchd.conf file.

As of OS X Yosemite, this is no longer working. To configure environment variables, you can do the following

$ nano ~/Library/LaunchAgents/my.startup.plist

my.startup.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "<a href="http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist">http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist</a> version="1.0">
<dict>
  <key>Label</key>
  <string>my.startup</string>
  <key>ProgramArguments</key>
  <array>
    <string>sh</string>
    <string>-c</string>
    <string>launchctl setenv $VARIABLE_NAME $VARIABLE_VALUE</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

ClickOnce application cannot be started when served by old Apache HTTPD (plain XML in browser)

Submitted by Jochus on Fri, 13/03/2015 - 19:42 | Posted in: Windows
Posted in


I recently stumbled into an issue of which a ClickOnce application was not started when trying to open it using a browser (doesn't matter if it was Internet Explorer, or Google Chrome, or ...). An XML file was always visible in the browser.

After doing some reach, I noticed the .application file was served as content type: text/plain

We have an older version of Apache HTTPD running (2.2.8, with a release of 2008-01-19). In the $APACHE_HOME/conf/mime.types file, there was no mentioning of the content type for files with extension: application. In a more recent version of Apache HTTPD, the mime.types already takes care of these files.

After adding the following lines (and restarting the Apache HTTPD server), the problem was solved

application/x-ms-application 		        application
application/manifest 			        manifest
application/octet-stream 		        deploy

SQL Server 2012 auto identity column value jump issue

Submitted by Jochus on Fri, 06/03/2015 - 20:48 | Posted in: Database
Posted in

Problem

From SQL Server 2012 version, when a SQL Server instance is restarted, it can be possible the table's identity value is jumped and the actual jumped value depends on identity column data type. If it is integer (int) data type, then the jump value is 1000 and if big integer (bigint), then jump value is 10000. From our application point of view, this increment is not acceptable for all the business cases specially when the value shows to the client. This is the special case/issue ships with only SQL Server 2012 and older versions have no such issue.

Solutions

  • Using Sequence
    • Remove identity column from tables
    • Create a sequence without cache feature and insert a number from that sequence
    • CREATE SEQUENCE Id_Sequence
          AS INT
          START WITH 1
          INCREMENT BY 1
          MINVALUE 0
          NO MAXVALUE
          NO CACHE
    • Register -t272 to SQL Server startup parameter
      • Open SQL Server configuration manager
      • Select SQL Server 2012 instance
      • Right click => Properties
      • Choose tab: "Startup parameters"
      • Register parameter -t272 in the field: "Specify a startup parameter"
      • Restart the SQL Server 2012 instance

Office 2013 (Word, Excel, Visio ...) distorted display issues

Submitted by Jochus on Fri, 06/03/2015 - 20:38 | Posted in: Windows
Posted in


After a recent Microsoft update, my Office software packages (Word, Excel, Visio, ...) started to do some strange things. Within Office 2013, the screen output would be distorted. The ribbon was not painted properly until I mouse-over them again, or moved Office programs around. Other times the display would look corrupted and the navigation tree would not be properly rendered.

The underlying issue is discussed in KB 2768648 - Performance and display issues in Office 2013 client applications.
While the underlying issue is with the video card driver, there is a workaround until the video driver is updated.

Controlling Via Registry

Set a registry key to disable the feature Disable hardware graphics acceleration:

HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Graphics - REG_DWORD - DisableHardwareAcceleration Value: 0x1

Macbook running very slow because of corrupted search index (Spotlight)

Submitted by Jochus on Wed, 29/10/2014 - 22:36 | Posted in: Mac
Posted in


My Macbook was recently running very slow. I've noticed Spotlight was constantly rebuilding the index. By executing the following lines of code in my terminal, the corrupted index was fixed:

$ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist