Задача: открыть файл скрипта и создать базу данных на сервере без использования 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
|
Как по-другому можно отправить скрипт в базу? Или как модефицировать мой код? |