SQL Server — difference between instance name and instance id
I’m a bit confused with SQL Server instances. The Instance Name and Instance ID are different properties, yet Instance ID tends to be defaulted to a capitalized version of the Instance Name. The installation allows you to set a different value for the ID than the Name, although typically they’re the same. Obviously, ID refers to internal reference and Name refers to user-friendly reference. But what are the fundamental differences between the two? When should one be used rather than the other? I need to understand this while deploying / installing SQL Server 2008 R2 Express on our clients’ server machines from a custom installation process.
asked Jan 31, 2014 at 1:23
Jerry Dodge Jerry Dodge
343 1 1 gold badge 3 3 silver badges 13 13 bronze badges
4 Answers 4
By default, the instance name is used as the Instance ID. Instance ID is used to identify installation directories and registry keys for your instance of SQL Server. This is the case for default instances and named instances
Install SQL 2008 r2 steps: Link
2,201 5 5 gold badges 17 17 silver badges 26 26 bronze badges
answered Jan 31, 2014 at 1:37
136 2 2 bronze badges
For named instances, the instance id is also used in the Name and DisplayName of the services.
Feb 2, 2014 at 21:02
I am not even a beginner but it’s all in the references provided to you Jerry Dodge.
INSTANCE NAME = Is attached to a SERVER NAME just like the way it’s stated. When you try to connect to an SQL Database you need the server to be able to get in. It’s all about the networking and properties of your Physical or Virtual machine hosting your DATABASE.
INSTANCE attached to SQL Instance Name. Once you provided the instance name which is the PATH to your SERVER NAME then you need the INSTANCE ID to be able to get into your programs and DATABASE path and all other software licensing requirements to run.
One is Physical or Virtual Computer and Network and the other is physical or logical path to the database storage.
answered Sep 25, 2014 at 16:20
Buxer Blugger Buxer Blugger
41 2 2 bronze badges
Well that is about a clear as mud.
May 3, 2017 at 15:58
This will help you to understand the differences.
USE master; SELECT SERVERPROPERTY('BuildClrVersion') AS [BuildClrVersion] , SERVERPROPERTY('ComputerNamePhysicalNetBIOS') AS ComputerNamePhysicalNetBIOS , SERVERPROPERTY('ServerName') AS [ServerName] , SERVERPROPERTY('InstanceName') AS [InstanceName] , SERVERPROPERTY('Collation') AS [Collation] , SERVERPROPERTY('ComparisonStyle') AS [ComparisonStyle] , SERVERPROPERTY('Edition') AS [Edition] , SERVERPROPERTY('EngineEdition') AS [EngineEdition] , SERVERPROPERTY('IsClustered') AS [IsClustered] , SERVERPROPERTY('IsFullTextInstalled') AS [IsFullTextInstalled] , SERVERPROPERTY('IsIntegratedSecurityOnly') AS [IsIntegratedSecurityOnly] , SERVERPROPERTY('IsSingleUser') AS [IsSingleUser] , SERVERPROPERTY('LCID') AS [LCID] , SERVERPROPERTY('LicenseType') AS [LicenseType] , SERVERPROPERTY('MachineName') AS [MachineName] , SERVERPROPERTY('NumLicenses') AS [NumLicenses] , SERVERPROPERTY('ProcessID') AS [ProcessID] , SERVERPROPERTY('ProductVersion') AS [ProductVersion] , SERVERPROPERTY('ProductLevel') AS [ProductLevel] , SERVERPROPERTY('ResourceLastUpdateDateTime') AS [ResourceLastUpdateDateTime] , SERVERPROPERTY('ResourceVersion') AS [ResourceVersion] , SERVERPROPERTY('SqlCharSetName') AS [SqlCharSetName] , SERVERPROPERTY('SqlSortOrder') AS [SqlSortOrder] , SERVERPROPERTY('SqlSortOrderName') AS [SqlSortOrderName]; GO
Instance Name : The name of the SQL Server- DEFAULT INSTANCE , Name INSTANCE( you give a name for the particular instance)
InstanceID: This is related to Instance Name. For Eg: when you press Default Instance than it will be SQLSERVER generated field instanceid or your name generated instanceid.
Как узнать id строки в Базе Данных?
а как определить id пользователя не получается, вернее не понимаю как получить id в переменную.
Все спасибо проблема решена)
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- SQL
- +2 ещё
5 млн файлов JSON или DB?
- 1 подписчик
- вчера
- 200 просмотров
Как узнать id sql
Есть T-SQL скрипт, который добавляет запись в таблицу (обычный insert). Как после выполнения этого скрипта узнать идентификатор (ID) вновь созданной записи если он (id) генерируется автоматически на стороне сервера? Можно ли это сделать в том же запросе?
Спросил Fish
968 дн., 19 час., 12 мин. назад
Новые ответы
Тут есть несколько вариантов. Кроме функции @@IDENTITY , о которой написал alexey-algel можно также использовать SCOPE_IDENTITY и IDENT_CURRENT .
IDENT_CURRENT — функция возвращает идентификатор последней записи, добавленной в определенную таблицу. Функция привязана именно к таблице и не привязана к области действия или сеансу. Таким образом следующие два запроса вернут одни и те же результаты:
SELECT IDENT_CURRENT("some_table") SELECT MAX(id) FROM some_table
@@IDENTITY — возвращает идентификатор последней записи, добавленной в текущем сеансе, в любую таблицу.
SCOPE_IDENTITY — возвращает идентификатор последней записи, добавленной в текущем сеансе и в текущей области, в любую таблицу.
С функцией IDENT_CURRENT все понятно — она возвращает id только для указанной таблицы. А вот грань между @@IDENTITY и SCOPE_IDENTITY очень тонкая. Чтобы ее почувствовать можно рассмотреть классический пример. Допустим, в базе есть таблица A. На вставку записи в таблицу A установлен триггер, который добавляет запись в другую таблицу B. Тогда, если выполнить скрипт
INSERT (. ) INTO A VALUES (. ) SELECT SCOPE_IDENTITY
То получим идентификатор новой записи таблицы A. Если же выполним
INSERT (. ) INTO A VALUES (. ) SELECT @@IDENTITY
То получим аналогичный идентификатор из таблицы B. Так происходит потому, что триггер срабатывает в том же сеансе, что и вставка записи, но в другой области. Соответственно, функция @@IDENTITY видит все insert’ы сеанса, а SCOPE_IDENTITY — только текущий insert области.
Как узнать id строки только что выполненного запроса insert?
Добрый день. Я вставляю данные (которые, возможно, в таблице уже повторяются), и им присваивается ключ id. Как мне в следующем запросе получить id строки, чтоб в дальнейшем работать с id?
Спасибо!
Отслеживать
11 1 1 золотой знак 2 2 серебряных знака 8 8 бронзовых знаков
задан 15 янв 2015 в 5:58
Rakzin Roman Rakzin Roman
5,700 12 12 золотых знаков 79 79 серебряных знаков 176 176 бронзовых знаков
Через что вы делаете sql запросы? Возможно новый id уже имеется и его можно получить без дополнительных запросов. Например я знаю в php в mysqli есть mysql_insert_id в котором храниться id сгенерированный при последнем INSERT-запросе
15 янв 2015 в 6:10
Может я не понял вопроса, но почему не устраивает SELECT id FROM table_name ORDER BY id DESC LIMIT 1 ?
15 янв 2015 в 7:59
@Роман Ракзин, СУБД-то какая? SQL довольно разный бывает от места к месту. @dzukp, это не очень надежный способ. В зависимости от уровня изоляции транзакции он может сработать, а может и наврать.
15 янв 2015 в 8:21
DESC LIMIT 1 — я тоже подумал. Но если предположить, что в друг в эти доли секунд отправляет ещё один человек — тогда это собъётся
