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

Transact-SQL (T-SQL) - это диалект SQL, используемый Microsoft SQL Server и Sybase SAP.

4
Могу ли я изменить структуру таблицы в транзакции, а затем откатить ее в случае ошибки?
У меня есть несколько ALTER TABLEзаявлений, которые я выполняю. Не все из них работают (они являются результатом выполнения SQL Data Compare), и я хочу сгруппировать их в некоторые транзакции и откатить операторы, если что-то пойдет не так. Это возможно, или это только данные, которые можно откатить?

3
Создать новую функцию по коду, если она не существует
Я хочу создать новую функцию по сценарию в моей базе данных. Код скрипта ниже: IF Exists(Select * From sys.sysobjects A Where A.name =N'fn_myfunc' and xtype=N'FN') return; CREATE FUNCTION fn_myfunc () returns varchar(10) AS Begin ... End Но когда я выполняю вышеуказанный скрипт, SQL Server возвращает ошибку: 'CREATE FUNCTION' must be …

2
Почему «SELECT POWER (10.0, 38.0);» выдает ошибку арифметического переполнения?
Я обновляю свой IDENTITYскрипт проверки переполнения для учета DECIMALи NUMERIC IDENTITYстолбцов . В рамках проверки я вычисляю размер диапазона типа данных для каждого IDENTITYстолбца; Я использую это, чтобы вычислить, какой процент этого диапазона был исчерпан. Для DECIMALи NUMERIC размер этого диапазона,2 * 10^p - 2 где pточность. Я создал кучу …

2
Десятичный SQL Server (9, 0) против INT
Один из наших клиентов использует для некоторых столбцов тип данных DECIMAL(18,0)в своей базе данных SQL Server 2008R2. Поскольку столбцы растут довольно медленно, он недавно предложил изменить тип данных, DECIMAL(5,0)чтобы восстановить некоторое хранилище. Согласно библиотеке MSDN , объем памяти типа DECIMAL(5,0)данных, как и DECIMAL(9,0)тип данных, составляет 5 байтов. INTна 1 байт …

5
Имеет ли смысл использовать скобочную запись SQL Server в написанном от руки коде?
Генераторы кода имеют тенденцию быть проще, когда они генерируют вывод, используя новую скобочную нотацию Microsoft ( []) почти для всего. Когда я впервые увидел это, я, правда, удивился реинкарнации несколько запрещенной цитируемой записи идентификатора. Насколько я знаю, это проприетарное расширение от Microsoft (то есть Oracle не поддерживает его). Глядя на …

1
Декодировать строку Base64 непосредственно в SQL Server
У меня есть varcharстолбец в таблице в SQL Server, который содержит текстовую строку в кодировке base64, которую я хотел бы преобразовать в текстовый эквивалент Есть ли в SQL Server какие-либо встроенные функции для обработки подобных вещей? Пример строки base64: cm9sZToxIHByb2R1Y2VyOjEyIHRpbWVzdGFtcDoxNDY4NjQwMjIyNTcxMDAwIGxhdGxuZ3tsYXRpdHVkZV9lNzo0MTY5ODkzOTQgbG9uZ2l0dWRlX2U3Oi03Mzg5NjYyMTB9IHJhZGl1czoxOTc2NA== Который декодирует в: role:1 producer:12 timestamp:1468640222571000 latlng{latitude_e7:416989394 longitude_e7:-738966210} radius:19764

1
Почему несколько COUNT быстрее, чем одна сумма с CASE?
Я хотел знать, какой из следующих двух подходов быстрее: 1) Три COUNT: SELECT Approved = (SELECT COUNT(*) FROM dbo.Claims d WHERE d.Status = 'Approved'), Valid = (SELECT COUNT(*) FROM dbo.Claims d WHERE d.Status = 'Valid'), Reject = (SELECT COUNT(*) FROM dbo.Claims d WHERE d.Status = 'Reject') 2) SUMс FROM-clause: SELECT …

1
Должны ли мы обрабатывать транзакции в коде C #, а также в хранимых процедурах
Действительно ли нам требуется обработка транзакций в c #, а также процесс хранения базы данных с обеих сторон? C #: Using(transaction with transaction scope) { Execute stored proc; Transaction. Complete; } Хранимая процедура SQL: Create process As Begin try Begin transaction Commit End try Begin catch Rollback End catch

4
Оптимизировано ли соединение для предложения where во время выполнения?
Когда я пишу запрос, как это ... select * from table1 t1 join table2 t2 on t1.id = t2.id Оптимизатор SQL, не уверен, что это правильный термин, переводит это в ... select * from table1 t1, table2 t2 where t1.id = t2.id По сути, является ли оператор Join в SQL …

1
Принудительная шпуля индекса
Я знаю, что этого следует избегать по соображениям производительности, но я пытаюсь показать условие, в котором это выглядит как демонстрация того, как убедиться, что оно не появляется. Однако я получаю предупреждение об отсутствующем индексе, но оптимизатор решает не создавать временный индекс. Я использую запрос SELECT z.a FROM dbo.t5 AS z …

2
Transact SQL, используя WITH в CREATE VIEW
Я хочу создать VIEW, используя предложения WITH, но на самом деле не могу найти никаких ссылок на правильный синтаксис. Я хочу что-то подобное WITH TempTbl AS (SELECT ...) CREATE VIEW SomeView SELECT * FROM TempTbl И каков правильный синтаксис для использования нескольких предложений WITH? Ничего полезного на MSDN :(
14 t-sql  view 

2
Почему CTE должен начинаться с точки с запятой?
Я только что посмотрел на пост в StackOverflow, где Аарон Бертран предлагает использовать CTE вместо таблицы чисел, что является элегантным способом выполнения поставленной задачи. Мой вопрос: почему первая строка CTE начинается с точки с запятой? ;WITH n AS (SELECT TOP (10000) n FROM (SELECT n = ROW_NUMBER() OVER (ORDER BY …
14 sql-server  t-sql  cte  syntax 

2
Онлайн восстановление страницы достигло предела 1000
Мне было поручено попытаться восстановить базу данных, которая пострадала от повреждения (из-за сбоя ввода-вывода, который был исправлен с тех пор). Я не знаком с базой данных или тем, что она содержит. Мне дали старую (~ 3 недели) полную резервную копию и серию журналов транзакций ... однако отсутствуют журналы транзакций, поэтому …

4
Что делает% в этом предложении WHERE?
Я делаю обучение, и один из сценариев имеет следующую команду: SELECT SUM(Col2) FROM clust_table WHERE Col1 % 3 = 1 Я хотел бы знать, для чего этот фрагмент в предложении WHERE: Col1 % 3 = 1 Я провел некоторое исследование в Интернете и не нашел никаких ссылок на эту команду.
13 sql-server  t-sql 

3
Преодолеть, как ограничение длины символа
Прочитав это ограничение длины символа LIKE здесь, похоже, что я не могу отправить текст длиной более ~ 4000 символов в предложении LIKE. Я пытаюсь получить план запроса из кэша плана запроса для конкретного запроса. SELECT * FROM sys.dm_exec_cached_plans AS cp CROSS APPLY sys.dm_exec_query_plan(cp.plan_handle) AS qp CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) AS st …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.