in reply to Identity nabber for MSSQL

Hope you don't mind if I make a few little 'tweaks' to your code.

Dave...

#/usr/local/bin/perl -w # identity.pl - MS Sql Server IDENTITY test script # Inserts a record, then grabs the IDENTITY value from # that insert and displays it use strict; # ALWAYS use strict (and -w as above) use Win32::ODBC; # you will format your own Connect string for the database # call use dbconnect; $CONNECT = GetConnectString(); my $db=''; # No need for double quotes here # unless(x) instead of if (!x) unless ($db = new Win32::ODBC($CONNECT)) { $ThisSub = (caller(0))[3]; $ErrMsg = "$ThisSub: Error connecting to $CONNECT" . "Error: " . $d +b->Error() . "\n"; print $ErrMsg; } # No need to escape the single quotes here... my $Sql = "insert into foobs ( FooTitle, FooDesc) values ( 'New Foo', +'yet another new foo' )"; if ( $db->sql($Sql) ) { print "error on insert\n"; # do something more elegant here } else { # If you change the qq to q, then there's no need # to escape the @ or the single quotes my $Sql = q/ select @@IDENTITY as 'foo' /; if ( $db->sql($Sql) ) { print "error on select\n"; # do something more elegant here } else { $db->fetchrow(); %Data = $db->DataHash(); # No need to quote the hash key foo. $foo = $Data{foo}; print "Indentity for insert is $foo"; } } exit;