Страницы

Поиск по вопросам

воскресенье, 29 марта 2020 г.

Последовательный GUID [закрыт]

#sql #sql_server


        
             
                
                    
                        
                            Закрыт. Этот вопрос необходимо уточнить или дополнить
подробностями. Ответы на него в данный момент не принимаются.
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            Хотите улучшить этот вопрос? Добавьте больше подробностей
и уточните проблему, отредактировав это сообщение.
                        
                        Закрыт 11 месяцев назад.
                                                                                
           
                
        
Прошу помощи в составлении SQL запроса на получении последовательного GUID поля 'ID',
чтобы в дальнейшем его программно передать в запрос на добавления записи 
    


Ответы

Ответ 1



Сейчас вы хотите сперва сгенерировать GUID и получить его на клиент для последующей вставки с ним. Поступите ровно наоборот: вставляйте запись в БД с автоматической генерацией GUID, а потом получайте его на клиент. Допустим, таблица создана следующим образом: create table SomeTable ( id uniqueidentifier default newsequentialid(), foo text ) Запрос на вставку будет таким: insert into SomeTable (foo) output inserted.id values ('bar') В коде C# это будет выглядеть так: using (var conn = new SqlConnection(@"...")) using (var cmd = conn.CreateCommand()) { cmd.CommandText = "insert into SomeTable (foo) output inserted.id values ('bar')"; conn.Open(); var guid = (Guid)cmd.ExecuteScalar(); Console.WriteLine(guid); } PS: Конечно, во избежание sql-инъекций следует всегда использовать параметры. Здесь код без них только ради упрощения восприятия.

Комментариев нет:

Отправить комментарий