Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Script.sql в базу данных. Проблема с функциями


Автор: igluk 10.9.2011, 17:55
Задача: открыть файл скрипта и создать базу данных на сервере без использования managment studio.
Делаю так:

Код

                                StreamReader streamReader = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream("Adjustment.UPOU.GenerateUpouBase.txt"), Encoding.Default);
                                string str3 = streamReader.ReadToEnd();
                                streamReader.Close();
                                string[] commands = str3.Replace("GO", "~").Split(new Char[] { '~' });
                                foreach (string command in commands)
                                {
                                    SqlCommand myCommand3 = new SqlCommand("Use " + textBoxNameOfDb.Text.ToString() + " " + command, myConn);
                                    myCommand3.ExecuteNonQuery();
                                }


Проблема возникает при добавлении ролчедуры или триггера. Натыкается на что-то типа того:

Код

create function [dbo].[GetYear]
      (
        @group varchar(4000),
        @datenow datetime
      )
returns int as
begin
    declare @result int

    if substring(@group,len(@group)-2,1)='-'
        set @result=year(@datenow-cast('09/01/20'+substring(@group,len(@group)-1,2) as datetime))-1899
    else
        set @result=0
    return @result
end


И говорит:

Код

Must declare the scalar variable "@group"
Must declare the scalar variable @datenow


Как по-другому можно отправить скрипт в базу? Или как модефицировать мой код?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)