Вопросы с тегом «t-sql»

26
Попытка найти последний раз, когда значение изменилось

У меня есть таблица с идентификатором, значением и датой. В этой таблице много идентификаторов, значений и дат. Записи вставляются в эту таблицу периодически. Идентификатор всегда будет оставаться неизменным, но иногда значение будет меняться. Как я могу написать запрос, который даст мне...

24
Проверьте, является ли строка палиндромом, используя T-SQL

Я новичок в T-SQL. Я хочу решить, является ли входная строка палиндромом, с output = 0, если это не так, и output = 1, если это так. Я все еще выясняю синтаксис. Я даже не получаю сообщение об ошибке. Я ищу различные решения и отзывы, чтобы лучше понять и понять, как работает T-SQL, чтобы стать...

24
Какие форматы даты / времени являются безопасными для ЯЗЫКА и DATEFORMAT?

Легко показать , что многие даты / времени форматов других , чем следующие два уязвимы для неверной интерпретации из - за установки языка, SET DATEFORMAT или язык для входа в систему по умолчанию: yyyyMMdd -- unseparated, date only yyyy-MM-ddThh:mm:ss.fff -- date dash separated, date/time separated...

23
Что на самом деле означает позиция предложения ON?

Нормальный JOIN ... ON ...синтаксис хорошо известен. Но также возможно расположить ONпредложение отдельно от того, JOINкоторому оно соответствует. Это то, что редко встречается на практике, не встречается в руководствах, и я не нашел ни одного веб-ресурса, который бы даже упоминал, что это...

23
Как мне установить строку SQL Server Unicode / NVARCHAR для эмодзи или дополнительного символа?

Я хочу установить строковую переменную Unicode для конкретного символа на основе ее кодовой точки Unicode. Я хочу использовать кодовую точку за пределами 65535, но база данных SQL Server 2008 R2 имеет параметры сортировки SQL_Latin1_General_CP1_CI_AS. Согласно документации NCHAR от Microsoft ,...

23
Что именно означает «Предикат без присоединения» в SQL Server?

MSDN « Отсутствует класс события предиката соединения » говорит, что « указывает на то, что выполняется запрос без предиката соединения ». Но, к сожалению, все не так просто. Например, очень простая ситуация: create table #temp1(i int); create table #temp2(i int); Select * from #temp1, #temp2...

23
Если в базе данных только одна вставка, плохо ли индексировать каждую возможную комбинацию столбцов?

Я работаю над системой отчетности, которая потребует больших запросов на выборку, но основана на базе данных, которая заполняется только один раз. Система управления базами данных - Microsoft SQL Server 2017. Вероятно, есть лучший способ создать такую ​​систему, но давайте подойдем к этому...

23
Псевдонимы подзапросов совпадают с псевдонимами основных запросов

У меня есть SQL-запрос, псевдонимы которого совпадают с псевдонимами некоторых его подзапросов. Например: select * from ROOM r where ... ( select * from ROAD r where ... ) Это прекрасно работает, так как псевдоним подзапроса, кажется, скрывает основной. Будет ли это работать так во всех случаях?...

23
Почему 0 равно пустой строке?

Мне нужна помощь в поиске, почему следующее T-SQLутверждение возвращает 1(true): SELECT IIF( 0 = '', 1, 0) Я предполагаю, что у кого-то есть изменения, ANSIнапример SET ANSI_NULLSили что-то еще, что вызывает поведение Моя проблема заключается в том , что я вхожу в некоторые значения и в конечном...

22
Есть ли способ создать скрипт создания таблицы в TSQL?

Есть ли способ сгенерировать сценарий создания из существующей таблицы исключительно в T-SQL (то есть без использования SMO, поскольку T-SQL не имеет доступа к SMO). Допустим, хранимая процедура, которая получает имя таблицы и возвращает строку, содержащую сценарий создания для данной таблицы?...

22
Ограничить результаты до первых 2 строк рейтинга

В SQL Server 2008 я использую, RANK() OVER (PARTITION BY Col2 ORDER BY Col3 DESC)чтобы вернуть набор данных с RANK. Но у меня есть сотни записей для каждого раздела, поэтому я получу значения с рангом 1, 2, 3 ... 999. Но я хочу только до 2 RANKsв каждом PARTITION. Пример: ID Name Score Subject 1...

21
Должен ли я добавить SET NOCOUNT ON ко всем моим триггерам?

Это довольно распространенное знание, что вы должны иметь SET NOCOUNT ON по умолчанию при создании новых хранимых процедур. Microsoft изменила шаблон по умолчанию, чтобы включить его в 2012 году. Я думал, что это должно быть то же самое для триггеров, но он не включен в шаблон. Это преднамеренное...

21
Внедрение SQL Server - какой урон наносится в 26 символов?

Я тестирую на устойчивость к внедрению атак на базу данных SQL Server. Все имена таблиц в БД строчные, а в сопоставлении учитывается регистр символов Latin1_General_CS_AS . Строка, которую я могу отправить, указывается в верхнем регистре и может содержать не более 26 символов. Поэтому я не могу...

20
Выбор правильного алгоритма в функции HashBytes

Нам нужно создать хеш-значение данных nvarchar для сравнения. В T-SQL доступно несколько хеш-алгоритмов, но какой из них лучше выбрать в этом сценарии? Мы хотим, чтобы риск наличия дублированного хеш-значения для двух разных значений nvarchar был минимальным. Основываясь на моих исследованиях в...

20
Выбрать все записи, объединить с таблицей A, если объединение существует, с таблицей B, если нет

Итак, вот мой сценарий: Я работаю над локализацией для моего проекта, и обычно я делаю это в коде C #, однако я хочу сделать это в SQL немного больше, так как я пытаюсь немного улучшить свой SQL. Среда: SQL Server 2014 Standard, C # (.NET 4.5.1) Примечание: сам язык программирования не имеет...

19
DEFAULT CONSTRAINT, стоит ли?

Я обычно проектирую свои базы данных по следующим правилам: Никто кроме db_owner и sysadmin не имеет доступа к таблицам базы данных. Роли пользователей контролируются на уровне приложений. Я обычно использую одну роль БД для предоставления доступа к представлениям, хранимым процедурам и функциям,...

19
Уникальный идентификатор с дополнительными символами, все еще совпадающими в Select

Мы используем SQL Server 2012 с уникальным идентификатором, и мы заметили, что при выполнении выбора с дополнительными символами, добавляемыми в конец (не 36 символов), он по-прежнему возвращает совпадение с UUID. Например: select * from some_table where uuid =...

19
Создать план руководства по кешированию (ленивая шпуля) результата CTE

Обычно я создаю планы планов, сначала создав запрос, использующий правильный план, и скопировав его в аналогичный запрос, который этого не делает. Однако иногда это бывает сложно, особенно если запрос не совсем такой же. Какой правильный способ создания плановых руководств с нуля? SQLKiwi упомянул...