Найдено результатов: 13

Как мне split строку, чтобы я мог получить доступ к элементу x?

Используя SQL сервер, как мне split строку, чтобы я мог получить доступ к элементу x?

Возьмите строку "Hello John Smith". Как я могу split строку пробелом и получить доступ к элементу с индексом 1, который должен возвращать "John"?

sql   sql-server   tsql   split    

469   5   16:03, 1st July, 2020


T-Sql формат даты в секундах с момента последней эпохи / форматирование для ввода sqlite

Я предполагаю, что это должно быть что-то вроде:

CONVERT(CHAR(24), lastModified, 101)

Однако я не уверен в правильном значении для третьего параметра.

Спасибо!


Ну, я пытаюсь написать сценарий для копирования моей базы данных сервера sql в файл sqlite, который загружается в приложение air, которое затем синхронизирует данные с другим файлом sqlite. У меня куча проблем с датами. Если я выбираю дату в air и пытаюсь вставить ее, это не удается, потому что она не в правильном формате... даже если это была действительная дата для начала. Я решил, что попробую поэкспериментировать с unix временем, так как это единственное, что работает до сих пор. Я рассматриваю возможность просто оставить их как varchar, потому что я все равно не сортирую по ним.

tsql   sqlite   date    

498   6   04:44, 14th August, 2020


Как избежать использования курсоров в Sybase (T-SQL)?

Представьте себе сцену, вы обновляете какой-то устаревший код Sybase и натыкаетесь на курсор. Хранимая процедура создает результирующий набор в таблице #temporary, которая полностью готова к возвращению, за исключением того, что один из столбцов не очень удобочитаем, это буквенно-цифровой код.

Что нам нужно сделать, так это выяснить возможные различные значения этого кода, вызвать другую хранимую процедуру для перекрестной ссылки на эти дискретные значения, а затем обновить результирующий набор новыми расшифрованными значениями:

declare c_lookup_codes for
select distinct lookup_code
from #workinprogress

while(1=1)
begin
    fetch c_lookup_codes into @lookup_code

    if @@sqlstatus<>0
    begin
        break
    end

    exec proc_code_xref @lookup_code @xref_code OUTPUT

    update #workinprogress
    set xref = @xref_code
    where lookup_code = @lookup_code
end

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

_NB: для целей этого примера вы также можете представить, что результирующий набор находится в области 500k строк и что существует 100 различных значений look_up_code и, наконец, что невозможно иметь таблицу со значениями внешней ссылки, так как логика в proc_code_xref слишком arcane._

tsql   sybase   cursors    

546   3   14:12, 4th August, 2020


Как вы справляетесь с ошибками транспортного уровня в SqlConnection?

Время от времени в высокообъемном приложении .NET вы можете видеть это исключение при попытке выполнить запрос:

System.Data.SqlClient.SqlException: ошибка транспортного уровня имеет произошел при отправке запроса на сервер.

Согласно моим исследованиям, это то, что "just happens" и не так много можно сделать, чтобы предотвратить это. Это не происходит в результате неправильного запроса и, как правило, не может быть продублировано. Он просто появляется, возможно, один раз в несколько дней в занятой системе OLTP, когда соединение TCP с базой данных по какой-то причине портится.

Я вынужден обнаружить эту ошибку, проанализировав сообщение об исключении, а затем повторить всю операцию с нуля, чтобы включить использование нового соединения. Все это не очень красиво.

У кого-нибудь есть альтернативные решения?

c#   sql-server   tsql   ado.net   sql-server-2000    

2070   11   15:36, 24th August, 2020


Какой самый простой способ с помощью T-SQL / MS-SQL добавить строку к существующим ячейкам таблицы?

У меня есть таблица с колонкой 'filename'. Недавно я выполнил вставку в эту колонку, но в спешке забыл добавить расширение файла ко всем введенным именам файлов. К счастью, все они являются изображениями ".jpg".

Как я могу легко обновить столбец 'filename' этих вставленных полей (предполагая, что я могу выбрать последние строки на основе известных значений идентификаторов), чтобы включить расширение '.jpg'?

sql   sql-server   tsql    

404   6   09:48, 6th August, 2020


Как удалить повторяющиеся строки?

Как лучше всего удалить повторяющиеся строки из довольно большой таблицы SQL Server (т. е. 300 000 + строк)?

Строки, конечно, не будут идеальными дубликатами из-за существования поля RowID identity.

MyTable

RowID int not null identity(1,1) primary key,
Col1 varchar(20) not null,
Col2 varchar(2048) not null,
Col3 tinyint not null

sql-server   tsql   duplicates    

797   25   15:46, 28th August, 2020


Как сделать вставки в таблицу?

У меня есть представление, в котором есть список заданий с данными, такими как то, кому они назначены, и этап, на котором они находятся. Мне нужно написать хранимую процедуру, которая возвращает количество заданий, которые каждый человек имеет на каждом этапе.

До сих пор у меня есть это (упрощенный):

DECLARE @ResultTable table 
(
  StaffName nvarchar(100),
  Stage1Count int,
  Stage2Count int
)

INSERT INTO @ResultTable (StaffName, Stage1Count)
  SELECT StaffName, COUNT(*) FROM ViewJob
  WHERE InStage1 = 1
  GROUP BY StaffName

INSERT INTO @ResultTable (StaffName, Stage2Count)
  SELECT StaffName, COUNT(*) FROM ViewJob
  WHERE InStage2 = 1
  GROUP BY StaffName

Проблема в том, что строки не объединяются. Поэтому, если у сотрудника есть задания в stage1 и stage2, есть две строки в @ResultTable., что я действительно хотел бы сделать, это обновить строку, если она существует для сотрудника, и вставить новую строку, если она не существует.

Кто-нибудь знает, как это сделать, или может предложить другой подход? Я бы очень хотел избежать использования курсоров для итерации по списку пользователей (но это мой запасной вариант).

Я использую SQL Server 2005.

Edit: @Lee: к сожалению, InStage1 = 1 было упрощением. Это действительно больше похоже на то, где DateStarted-это не NULL, а DateFinished - это NULL.

Edit: @BCS: мне нравится идея сделать вставку всех сотрудников сначала, поэтому мне просто нужно делать обновление каждый раз. Но я изо всех сил пытаюсь получить эти утверждения UPDATE правильно.

sql   sql-server   tsql    

417   6   17:43, 4th August, 2020


Триггер без транзакции?

Можно ли создать триггер, который не будет в транзакции?

Я хочу обновить данные на связанном сервере с помощью триггера, но из-за проблем с брандмауэром мы не можем создать распределенную транзакцию между двумя серверами.

sql-server   tsql   triggers    

397   2   03:16, 19th August, 2020


Какой хороший способ проверить, находятся ли две даты в один и тот же календарный день в TSQL?

Вот проблема, с которой я сталкиваюсь: у меня есть большой запрос, который должен сравнить даты в предложении where, чтобы увидеть, если две даты находятся в один и тот же день. Мое текущее решение, которое отстойно, состоит в том, чтобы отправить даты в UDF, чтобы преобразовать их в полночь того же дня, а затем проверить эти даты на равенство. Когда дело доходит до плана запроса, это катастрофа, как и почти все UDFs в предложениях joins или where. Это одно из немногих мест в моем приложении, где я не смог искоренить функции и дать оптимизатору запросов то, что он действительно может использовать для поиска лучшего индекса.

В этом случае слияние кода функции обратно в запрос кажется нецелесообразным.

Мне кажется, я упускаю здесь что-то простое.

Вот функция для справки.

if not exists (select * from dbo.sysobjects 
              where id = object_id(N'dbo.f_MakeDate') and               
              type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
  exec('create function dbo.f_MakeDate() returns int as 
         begin declare @retval int return @retval end')
go

alter function dbo.f_MakeDate
(
    @Day datetime, 
    @Hour int, 
    @Minute int
)
returns datetime
as

/*

Creates a datetime using the year-month-day portion of @Day, and the 
@Hour and @Minute provided

*/

begin

declare @retval datetime
set @retval = cast(
    cast(datepart(m, @Day) as varchar(2)) + 
    '/' + 
    cast(datepart(d, @Day) as varchar(2)) + 
    '/' + 
    cast(datepart(yyyy, @Day) as varchar(4)) + 
    ' ' + 
    cast(@Hour as varchar(2)) + 
    ':' + 
    cast(@Minute as varchar(2)) as datetime)
return @retval
end

go

Чтобы усложнить ситуацию, я подключаюсь к таблицам часовых поясов, чтобы проверить дату по местному времени, которое может отличаться для каждой строки:

where 
dbo.f_MakeDate(dateadd(hh, tz.Offset + 
    case when ds.LocalTimeZone is not null 
    then 1 else 0 end, t.TheDateINeedToCheck), 0, 0) = @activityDateMidnight

[Редактировать]

Я включаю предложение @Todd's:

where datediff(day, dateadd(hh, tz.Offset + 
    case when ds.LocalTimeZone is not null 
    then 1 else 0 end, t.TheDateINeedToCheck), @ActivityDate) = 0

Мое неправильное представление о том, как работает datediff (один и тот же день года в последовательные годы дает 366, а не 0, как я ожидал), заставило меня потратить много усилий.

Но план запроса не изменился. Я думаю, что мне нужно вернуться к чертежной доске со всем этим.

sql   sql-server   tsql   datetime   user-defined-functions    

452   10   19:32, 19th August, 2020


SQL сервер: примеры строковых данных PIVOTing

Пытаюсь найти несколько простых примеров SQL Server PIVOT. Большинство примеров, которые я нашел, связаны с подсчетом или суммированием чисел. Я просто хочу pivot некоторые строковые данные. Например, у меня есть запрос, возвращающий следующее.

Action1 VIEW  
Action1 EDIT  
Action2 VIEW  
Action3 VIEW  
Action3 EDIT  

Я хотел бы использовать PIVOT (если это вообще возможно), чтобы сделать результаты такими:

Action1 VIEW EDIT  
Action2 VIEW NULL  
Action3 VIEW EDIT  

Возможно ли это вообще с помощью функции PIVOT?

sql-server   tsql   pivot    

505   8   00:02, 24th August, 2020


Создать базу данных из другой базы данных?

Существует ли автоматический способ в SQL Server 2005 создать базу данных из нескольких таблиц в другой базе данных? Мне нужно работать над проектом, и мне нужно только несколько таблиц, чтобы запустить его локально, и я не хочу делать резервную копию 50 gig DB.

UPDATE

Я попробовал Tasks - > Export Data в Management studio, и хотя он создал новую суббазу данных с таблицами, которые я хотел, он не копировал никакие метаданные таблицы, ограничения ie...no PK/FK и никаких идентификационных данных (даже с проверкой сохранения идентичности).

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

У меня нет доступных служб интеграции, и два сервера SQL не могут напрямую подключаться друг к другу, поэтому они отключены.

Обновление обновления

Инструмент публикации базы данных работал, SQL, сгенерированный им, был немного глючным, поэтому требовалось небольшое ручное редактирование (пытался ссылаться на несуществующие триггеры), но как только я это сделал, я был готов идти.

sql-server-2005   tsql    

416   5   00:05, 26th August, 2020


Есть ли способ сделать переменную TSQL постоянной?

Есть ли способ сделать переменную TSQL постоянной?

sql-server   tsql    

500   12   20:39, 8th August, 2020


Получить последний элемент в таблице-SQL

У меня есть таблица истории в SQL Server, которая в основном отслеживает элемент через процесс. Элемент имеет несколько фиксированных полей, которые не изменяются на протяжении всего процесса, но имеет несколько других полей, включая статус и идентификатор, которые увеличиваются по мере увеличения шагов процесса.

В основном я хочу получить последний шаг для каждого элемента, заданного ссылкой на пакет. Так что если я сделаю

Select * from HistoryTable where BatchRef = @BatchRef

Он вернет все шаги для всех элементов в пакете-например

Id      Status  BatchRef        ItemCount
1       1       Batch001        100
1       2       Batch001        110
2       1       Batch001        60
2       2       Batch001        100

Но чего я действительно хочу, так это:

Id      Status  BatchRef        ItemCount
1       2       Batch001        110
2       2       Batch001        100

Edit: Appologies - кажется, не удается получить теги TABLE для работы с Markdown - последовал за справкой к письму и выглядит нормально в предварительном просмотре

sql   sql-server   database   tsql    

551   6   00:54, 7th August, 2020