نوشته شده توسط
mina.net
اگه امکانش هست برای من یک مثال بزنید. چون من قبلا این کار رو انجام ندادم.
ساختن table به نام table1 بر روي ديتابيسي به نام test
USE [test]
GO
/****** Object: Table [dbo].[table1] Script Date: 11/02/2009 17:35:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[table1](
[ID] [int] IDENTITY(1,1) NOT NULL,
[field1] [nvarchar](50) NULL,
[field2] [nchar](10) NULL,
[field3] [int] NULL,
[field4] [image] NULL,
CONSTRAINT [PK_table1] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
حالا يک script براي اضافه کردن field به table موجود:
USE [test]
GO
/****** Object: Table [dbo].[table1] Script Date: 11/02/2009 17:35:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Alter TABLE [dbo].[table1]
add [field5] [nvarchar](50) NULL,
[field6] [nchar](10) NULL
حالا شما مثلاً مي خواهيد اين script رو روي سيستم کاربر اجرا نماييد، براي اين کار شما مي توانيد از sqlcmd.exe استفاده نماييد.
بهترين راه براي اين کار :
1- اسکريپت مورد نظر را به صورت يک فايل با پسوند sql. بسازيد.
2- از محيط برنامه خودتون يا يک برنامه ديگر به عنوان updater فايل script ساخته شده را به شکل زير اجرا نماييد:
System.Diagnostics.Process.Start("sqlcmd.exe", "-S نام سرور -i \"" + نام و مسير فايل مورد نظر جهت آپديت + "\"");
مثال:
System.Diagnostics.Process.Start("sqlcmd.exe", "-S .\\sqlexpress -i \"c:\\test.sql\"");
موفق باشيد.