Что Вы используете для записи, Идут [закрытые]

Вот сценарий, который я придумал. Это обрабатывает столбцы Identity, значения по умолчанию и первичные ключи. Это не обрабатывает внешние ключи, индексы, триггеры или любой другой умный материал. Это работает над 2000 SQLServer, 2005 и 2008.

declare @schema varchar(100), @table varchar(100)
set @schema = 'dbo' -- set schema name here
set @table = 'MyTable' -- set table name here
declare @sql table(s varchar(1000), id int identity)

-- create statement
insert into  @sql(s) values ('create table [' + @table + '] (')

-- column list
insert into @sql(s)
select 
    '  ['+column_name+'] ' + 
    data_type + coalesce('('+cast(character_maximum_length as varchar)+')','') + ' ' +
    case when exists ( 
        select id from syscolumns
        where object_name(id)=@table
        and name=column_name
        and columnproperty(id,name,'IsIdentity') = 1 
    ) then
        'IDENTITY(' + 
        cast(ident_seed(@table) as varchar) + ',' + 
        cast(ident_incr(@table) as varchar) + ')'
    else ''
    end + ' ' +
    ( case when IS_NULLABLE = 'No' then 'NOT ' else '' end ) + 'NULL ' + 
    coalesce('DEFAULT '+COLUMN_DEFAULT,'') + ','

 from INFORMATION_SCHEMA.COLUMNS where table_name = @table AND table_schema = @schema
 order by ordinal_position

-- primary key
declare @pkname varchar(100)
select @pkname = constraint_name from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
where table_name = @table and constraint_type='PRIMARY KEY'

if ( @pkname is not null ) begin
    insert into @sql(s) values('  PRIMARY KEY (')
    insert into @sql(s)
        select '   ['+COLUMN_NAME+'],' from INFORMATION_SCHEMA.KEY_COLUMN_USAGE
        where constraint_name = @pkname
        order by ordinal_position
    -- remove trailing comma
    update @sql set s=left(s,len(s)-1) where id=@@identity
    insert into @sql(s) values ('  )')
end
else begin
    -- remove trailing comma
    update @sql set s=left(s,len(s)-1) where id=@@identity
end

-- closing bracket
insert into @sql(s) values( ')' )

-- result!
select s from @sql order by id
15
задан James McMahon 15 December 2009 в 23:19
поделиться

10 ответов

в $ GOROOT / misc есть файлы подсветки синтаксиса для emacs, vim, xcode и kate. Подойдет любой из этих редакторов.

38
ответ дан 1 December 2019 в 00:00
поделиться

Кто-то в канале # go-nut irc имеет файл синтаксиса Go для gedit , поэтому я бы спросил, хотите ли вы этого.

Я лично использую то, что используют Роб Пайк и Расс Кокс: acme . И я знаю, что Кен Томпсон все еще использует sam .

Edit: Для тех, кто заинтересован, Я создал страницу для сбора файлов подсветки синтаксиса Go для различных текстовых редакторов . Если у вас есть что-то, чего там нет, дайте мне знать, и я с радостью добавлю его.

11
ответ дан 1 December 2019 в 00:00
поделиться

Заходим, чтобы опубликовать обязательный ответ vim .

3
ответ дан 1 December 2019 в 00:00
поделиться

Я посмотрю на ваш vim и подниму вам один emacs.

3
ответ дан 1 December 2019 в 00:00
поделиться

Кто-то выпустил комплект для TextMate, если вы используете Mac. (просто выполните поиск в обсуждениях Go Google Group).

2
ответ дан 1 December 2019 в 00:00
поделиться

После поиска альтернатив я нашел эту ветку . Г-н Перес создал файл синтаксиса для gtk sourceview, чтобы редакторы, такие как gedit, scribes и т. Д.

2
ответ дан 1 December 2019 в 00:00
поделиться

Some info no-one has mentioned yet: The Go distribution comes with a program called gofmt which provides a standardized format for the language. You can run golfed Go through it and get clean output. See this example.

I am always using Emacs so I initially started thinking there would be no Go mode for Emacs and asked this question. Then a minute after I'd asked I had the notion to do find . -name "*.el" at the top of the Go source tree and was able to answer my own question. Some other people seem to have found the answer useful.

2
ответ дан 1 December 2019 в 00:00
поделиться

vim или emacs? Я еще не играл с Go, но это единственные редакторы, которые я использую при программировании для себя.

0
ответ дан 1 December 2019 в 00:00
поделиться

Notepad ++ , вероятно, мог бы работать с некоторой настройкой файла синтаксиса для C ++.

Чтобы увидеть различия, прочтите Go For C ++ Programmers

1
ответ дан 1 December 2019 в 00:00
поделиться

Лично я считаю, что возможность разделенного окна Кейт весьма полезна при программировании на го. (Ubuntu 10.4 LTS с добавленным файлом подсветки синтаксиса kate)

Hotei

0
ответ дан 1 December 2019 в 00:00
поделиться