Это действительно общее задание для специальных запросов. Довольно часто мы проводим специальные запросы в средах разработки и тестирования, простые запросы, как:Соответствие первичному ключу без явного указания ключа в SQL Server
SELECT *
FROM dbo.User
WHERE UserID = 2
Есть ли построить функциональность для использования первичного ключа в пункте WHERE
без явного определения имени столбца.
кажется логически мне, что, как вы можете иметь только один первичный ключ на столе и SQL Server имеет знание этого, вы можете использовать синтаксис, как показано ниже:
SELECT *
FROM dbo.User
WHERE PK = 3
Где PK
является родовым предоставляемый SQL Server для текущего первичного ключа, который существует в таблице.
Причина, почему это не может существовать:
- насчет составных ключей, это не будет работать на них
- Вы бы не использовать его в производственном запросе
- Это только действительно синтаксис
Одним словом: ** НЕТ **. Если вы хотите определить условие 'WHERE', вам нужно указать столбцы, которые вы хотите проверить, с помощью –
. Вы правы, для этого нет встроенного объекта. Чтобы достичь этого, вам придется использовать динамический SQL, но это все еще не очень хорошо для соображений производительности/ремонтопригодности/безопасности. – Bridge
Вы можете использовать 'WHERE IDENTITYCOL = 3', если PK является столбцом идентификации. –