c生成sql脚本
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data.SqlClient;
namespace openfile
{
class Program
{
static void Main(string[] args)
{
baseclass bs=new baseclass();
System.Console.WriteLine("请输入路径(例'c://cmd.sql')");//输入你要执行文件的目录
string path=System.Console.ReadLine();
string sql=bs.sql(path);
int i = 0;
SqlConnection con = new SqlConnection("server=.;database=oracle9i;user id=sa;password=123");//可以根据你自己的机子设置的数据库,用户名,密码而定
SqlCommand com = new SqlCommand(sql,con);
con.Open();
for (; i < sql.Length; i++)
{
if (sql.Substring(i, 0) != " ")
break;
}
if(sql.Substring(i,6)=="select")
{
SqlDataReader dr;
dr=com.ExecuteReader();
while(dr.Read())
{
System.Console.WriteLine(dr[0].ToString());
}
}
else
{
com.ExecuteNonQuery();
System.Console.WriteLine("操作成功!");
}
System.Console.ReadLine();
}
}
class baseclass
{
public string sql(string filepath)
{
StreamReader str = null;
string sm="";
try
{
str = File.OpenText(filepath);
while (str.Peek() != -1)
{
sm = str.ReadLine();
}
str.Close();
}
catch
{
sm = "";
}
return sm;
}
public void resoust(string sql)
{
}
}
}
2. Sqlserver,如何利用命令行或者sql脚本导出可执行的sql脚本
SQL Server并不包含这个功能,只能靠第三方的代码了。
用这个存储过程可以实现:
CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar(1000)
declare @columndata varchar(1000)
declare @sql varchar(4000)
declare @xtype tinyint
declare @name sysname
declare @objectId int
declare @objectname sysname
declare @ident int
set nocount on
set @objectId=object_id(@tablename)
if @objectId is null -- 判断对象是否存在
begin
print 'The object not exists'
return
end
set @objectname=rtrim(object_name(@objectId))
if @objectname is null or charindex(@objectname,@tablename)=0 --此判断不严密
begin
print 'object not in current database'
return
end
if OBJECTPROPERTY(@objectId,'IsTable') < > 1 -- 判断对象是否是table
begin
print 'The object is not table'
return
end
select @ident=status&0x80 from syscolumns where id=@objectid and status&0x80=0x80
if @ident is not null
print 'SET IDENTITY_INSERT '+@TableName+' ON'
declare syscolumns_cursor cursor
for select c.name,c.xtype from syscolumns c where c.id=@objectid order by c.colid
open syscolumns_cursor
set @column=''
set @columndata=''
fetch next from syscolumns_cursor into @name,@xtype
while @@fetch_status < >-1
begin
if @@fetch_status < >-2
begin
if @xtype not in(189,34,35,99,98) --timestamp不需处理,image,text,ntext,sql_variant 暂时不处理
begin
set @column=@column+case when len(@column)=0 then'' else ','end+@name
set @columndata=@columndata+case when len(@columndata)=0 then '' else ','','','
end
+case when @xtype in(167,175) then '''''''''+'+@name+'+''''''''' --varchar,char
when @xtype in(231,239) then '''N''''''+'+@name+'+''''''''' --nvarchar,nchar
when @xtype=61 then '''''''''+convert(char(23),'+@name+',121)+''''''''' --datetime
when @xtype=58 then '''''''''+convert(char(16),'+@name+',120)+''''''''' --smalldatetime
when @xtype=36 then '''''''''+convert(char(36),'+@name+')+''''''''' --uniqueidentifier
else @name end
end
end
fetch next from syscolumns_cursor into @name,@xtype
end
close syscolumns_cursor
deallocate syscolumns_cursor
set @sql='set nocount on select ''insert '+@tablename+'('+@column+') values(''as ''--'','+@columndata+','')'' from '+@tablename
print '--'+@sql
exec(@sql)
if @ident is not null
print 'SET IDENTITY_INSERT '+@TableName+' OFF'
GO
使用方法:
exec UspOutputData 你的表名
然后将运行后的结果存成.sql,加上用SQL Server生成的数据库脚本就可以了
3. 扩展名是sql的脚本怎么弄啊,这个文件到底有什么用,该怎么用,回答好的报酬多多
SQL:Informix SQL查询;通常被数据库产品用于SQL查询(脚本、文本、二进制)的文件扩展名
{SQL全称是“结构化查询语言(Structured Query Language)”
SQL(Structured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL同时也是数据库脚本文件的扩展名。
SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。
结构化查询语言(Structured Query Language)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像Oracle、Sybase、Informix、SQL Server这些大型的数据库管理系统,还是像Visual Foxporo、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。
美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。ANSI是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。ANSI同时也是ISO和International Electrotechnical Commission(IEC)的成员之一。ANSI 发布与国际标准组织相应的美国标准。1992年,ISO和IEC发布了SQL国际标准,称为SQL-92。ANSI随之发布的相应标准是ANSI SQL-92。ANSI SQL-92有时被称为ANSI SQL。尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循 ANSI SQL 标准。SQL Server使用ANSI SQL-92的扩展集,称为T-SQL,其遵循ANSI制定的 SQL-92标准。
SQL语言包含4个部分:
※ 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。
※ 数据操作语言(DML),例如:INSERT、UPDATE、DELETE语句。
※ 数据查询语言(DQL),例如:SELECT语句。
※ 数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。
SQL语言包括三种主要程序设计语言类别的陈述式:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。 }
如果用SQL SERVER数据库,在你建立的好的表上右键,然后选择"所有任务"里面有一项叫"生成SQL脚本",里面还有些选项,可以查看SQL的联机帮助
4. 如何使用c#执行一个.SQL脚本文件
有两种方法:
1。在A2.c中有完整的函数定义,在A1.c中添加一下要用到的函数原型(声明)就可以了,例如:
在A2.c中:有函数void A2(){...};
在A1.c中:在文件前头增加一行:void A2();就可以了
2。把A2.c中完整定义的函数的原型,写到一个A2.h文件中,然后在A1.c的文件头增加#include "A2.h"就可以了
以上两种方法,在A1.c中都可以正常的调用,就跟在A2.c中调用一样。
其实函数默认是外部的,只要在其他文件中声明就能使用; 但是注意如果在前面加上static , 就只能在本文件中使用了, 不能再被其他的文件调用。
5. 如何生成SQL2012的脚本
1.打开Management Studio,登录到服务器,在数据库中选择要转移的数据库,
右键--“任务(T)”--“生成脚本(E)...”。
2.在“生成和发布脚本”窗口中,点击“下一步”,
3.“选择要编写脚本的数据库对象”,可以不做设置,点击“下一步”,
4.点击[保存到文件]右边的“高级”按钮,在对话框中,设置“为服务器版本编写脚本”为“SQL Server 2008 R2”,
设置“要编写脚本的数据的类型”为“架构和数据”。选择保存脚本的位置。
5.下一步,再下一步。导出完成。
SQL Server 2008 R2导入的过程
1.打开Management Studio,登录到服务器,
2.选择菜单“文件”——“打开”——“文件”,选择.sql脚本文件,点击工具栏中的“执行”按钮。
3.在左侧的“对象资源管理器”中右键“数据库”——“刷新”。完毕。
6. 请教如何编写脚本执行SQL脚本
步骤:(1) 创建一个批处理文件:打开记事本,创建数据库连接信息(例如,server name,username,password,databasename等)以及要执行的*.sql脚本名称。具体语法参考下文"osql 实用工具" 。 将文件的扩展名改为.bat 并保存。
示例1:指定待执行sql 文件的相对路径
osql -S admin\admin -U sa -P sa -d TestDB -i c:\test.sql
pause
示例2: 待执行文件与bat文件在同一个目录,指定相对路径
set localdir=%~dp0
osql -S (local) -U sa -P sa -d Test -i %localdir%\test1.sql
osql -S (local) -U sa -P sa -d Test -i %localdir%\test2.sql
osql -S (local) -U sa -P sa -d Test -i %localdir%\test3.sql
pause
(2) 创建需要执行的sql 脚本, test.sql,test2.sql 和test3.sql, 并放在步骤(1)示例1中指定的位置。本例为c:\ 根目录。如果用示例2,将待执行的sql和bat文件放在同一个目录下。
(3) 双击*.bat 文件并查看运行结果。
7. 如何在C 中用程序执行指定的SQL脚本文件,实
1、用cmd命令打开DOS命令行窗口
2、用sqlplus命令进入SQL命令状态,命令行如下:c:\sqlplus/nolog
3、用如下命令连接数据库:connect 数据库用户名/密码@sid_ip,如:sql>connectionljm/ljm@ljm_localhost(本机数据库)
4、用如下命令执行脚本文件sql>@完整路径文件名
5、如果要导入SEQUENCE的话,可以用toad工具先生成SEQ脚本文件,再用如上命令导入
8. 如何把SQL数据库生成脚本 SQL语句
--将表数据生成SQL脚本的存储过程
CREATEPROCEDUREdbo.UspOutputData
@tablenamesysname
AS
declare@columnvarchar(1000)
declare@columndatavarchar(1000)
declare@sqlvarchar(4000)
declare@xtypetinyint
declare@namesysname
declare@objectIdint
declare@objectnamesysname
declare@identint
setnocounton
set@objectId=object_id(@tablename)
if@objectIdisnull--判断对象是否存在
begin
print'Theobjectnotexists'
return
end
set@objectname=rtrim(object_name(@objectId))
if@objectnameisnullorcharindex(@objectname,@tablename)=0--此判断不严密
begin
print'objectnotincurrentdatabase'
return
end
ifOBJECTPROPERTY(@objectId,'IsTable')<>1--判断对象是否是table
begin
print'Theobjectisnottable'
return
end
select@ident=status&0x80fromsyscolumnswhereid=@objectidandstatus&0x80=0x80
if@identisnotnull
print'SETIDENTITY_INSERT'+@TableName+'ON'
declaresyscolumns_cursorcursor
forselectc.name,[email protected]
opensyscolumns_cursor
set@column=''
set@columndata=''
fetchnextfromsyscolumns_cursorinto@name,@xtype
while@@fetch_status<>-1
begin
if@@fetch_status<>-2
begin
if@xtypenotin(189,34,35,99,98)--timestamp不需处理,image,text,ntext,sql_variant暂时不处理
begin
set@column=@column+casewhenlen(@column)=0then''else','end+@name
set@columndata=@columndata+casewhenlen(@columndata)=0then''else','','','
end
+casewhen@xtypein(167,175)then'''''''''+'+@name+'+'''''''''--varchar,char
when@xtypein(231,239)then'''N''''''+'+@name+'+'''''''''--nvarchar,nchar
when@xtype=61then'''''''''+convert(char(23),'+@name+',121)+'''''''''--datetime
when@xtype=58then'''''''''+convert(char(16),'+@name+',120)+'''''''''--smalldatetime
when@xtype=36then'''''''''+convert(char(36),'+@name+')+'''''''''--uniqueidentifier
else@nameend
end
end
fetchnextfromsyscolumns_cursorinto@name,@xtype
end
closesyscolumns_cursor
deallocatesyscolumns_cursor
set@sql='setnocountonselect''insert'+@tablename+'('+@column+')values(''as''--'','+@columndata+','')''from'+@tablename
print'--'+@sql
exec(@sql)
if@identisnotnull
print'SETIDENTITY_INSERT'+@TableName+'OFF'
GO
execUspOutputData你的表名