当前位置:首页 » 编程语言 » sqlif脚本

sqlif脚本

发布时间: 2023-09-16 03:07:53

❶ LINUX下shell脚本如何执行 sql脚本 到DB2数据库

1、在gedit中编写.sh格式的文件,保存为a.sh。

❷ sql文件中如何编写循环建表的脚本

如果数据库中已经存在test表则,将其drop掉,
if exists (select * from dbo.Sysobjects where id='test' and OBJECTPROPERTY(OBJECT_ID('test'),'IsTable')=1 )
drop table test
--新建数据库
create table test
(
id int
)
declare @i int,@num int --定义变量用来存储循环初始值和结束值
select @i=1,@num=1000
while (@i<=@num) ---进入循环
begin
insert into test values(@i)
select @i+=1
end
select * from test
drop table test --删除实体表,如果程序真用则就不要删除了!

❸ 如何将Excel中表结构数据自动生成SQL脚本的方法

一: 在本地PC新建一个Excel文件(例如:excel2007)
准备工作,左键选择excel文本左上角的图标,选择“Excle选项”。1. 点击“信任中心”->“信任中心设置”->“宏设置”->选择“启用所有宏...”选项。“开发人员宏设置”选项也勾选上。 2. 点击“信任中心”->“信任中心设置”->选择“个人信息选项”,将“文档特定设置”上面默认选择去掉,避免在保存脚本时报错。
二: 在本地PC新建一个excel文件(例如: D:\testdate.xlsx)
按快捷键“ALT + F11”进入宏编辑,输入如下代码后保存。summary()为目标生成代码,SQL()为生成SQL脚本文件代码,按条件生成SQL的脚本如下:
Sub summary()
Dim i As Integer
i = 2
ThisWorkbook.Worksheets(1).Columns(2).Clear
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> " " Then
ThisWorkbook.Worksheets(1).Cells(i, 2).Value = sh.Name
ThisWorkbook.Worksheets(1).Cells(i, 2).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
sh.Name + "!A1", TextToDisplay:=sh.Name
i = i + 1
End If
Next sh

ThisWorkbook.Worksheets(1).Cells.Select

With Selection.Font
.Name = "目录"
.Size = 9
.Strikethrough = False
.Superscript. = False
.Subscript. = False
.OutlineFont = False
.Shadow = False
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End Sub
Sub SQL()
Dim i As Integer
i = 1
Dim ADO_Stream As Object
Dim strSQL, strDelSQL As String
Dim strTblName As String
Dim col As Long
Dim row As Long
Dim str As String
Dim PK As String
Dim cnt As Integer

PK = "PK"
Dim rowcounts As Long
rowcounts = 0
Dim filecount As Long
filecount = 0
Set ADO_Stream = CreateObject("ADODB.Stream")
ADO_Stream.Type = 2
ADO_Stream.Mode = 3
ADO_Stream.Charset = "unicode"
ADO_Stream.Open

Dim checkType As String
For Each sh In ThisWorkbook.Worksheets
cnt = 0
If sh.Name <> " " And InStr(sh.Name, "template") = 0 Then
strTblName = sh.Cells(1, 2).Value
rowcounts = 1
'Insert SQL
row = 6

Do While sh.Cells(row, 1).Value <> ""
strDelSQL = "delete from " + strTblName + " where "
strSQL = "Insert into " + strTblName + " ("
col = 1
Do While sh.Cells(3, col).Value <> ""
If col <> 1 Then
strSQL = strSQL + ", "
End If
strSQL = strSQL + sh.Cells(3, col).Value
col = col + 1
Loop
strSQL = strSQL + ") VALUES ("
col = 1
Do While sh.Cells(3, col).Value <> ""

str = Trim(CStr(sh.Cells(row, col).Value))

If InStr(Trim(CStr(sh.Cells(2, col).Value)), PK) <> 0 Then
If cnt > 0 Then
strDelSQL = strDelSQL + " and "
End If
strDelSQL = strDelSQL + Trim(CStr(sh.Cells(3, col).Value)) + " = '" + str + "'"
cnt = cnt + 1
End If
If col <> 1 Then
strSQL = strSQL + ", "
End If

If (InStr(Trim(CStr(sh.Cells(4, col).Value)), "Integer") = 0) And (InStr(Trim(CStr(sh.Cells(4, col).Value)), "Decimal") = 0) And ((InStr(Trim(CStr(sh.Cells(4, col).Value)), "DATE") = 0) Or _
((Len(str) > 0) And (InStr(Trim(CStr(sh.Cells(4, col).Value)), "DATE") > 0))) Then
If (Len(str) <= 0) And (InStr(Trim(CStr(sh.Cells(5, col).Value)), "No") = 0) Then
str = "NULL"
ElseIf InStr(Trim(CStr(sh.Cells(4, col).Value)), "DATE") > 0 Then
str = "to_date('" + str + "','yyyy-mm-dd hh24:mi:ss')"
Else
str = "'" + str + "'"
End If

strSQL = strSQL + str
ElseIf (Len(str) <= 0) And (InStr(Trim(CStr(sh.Cells(4, col).Value)), "DATE") > 0) Then
strSQL = strSQL + "NULL"
Else
If (Len(str) <= 0) And (InStr(Trim(CStr(sh.Cells(5, col).Value)), "No") = 0) Then
str = "NULL"
End If

strSQL = strSQL + str
End If

col = col + 1
Loop

strDelSQL = strDelSQL + ";" + vbCrLf
ADO_Stream.WriteText strDelSQL
strSQL = strSQL + ");" + vbCrLf
ADO_Stream.WriteText strSQL
row = row + 1
Loop
End If
i = i + 1
rowcounts = 0
filecount = 0
Next sh
ADO_Stream.SaveToFile ThisWorkbook.Path & "\MstSQL(delete by condition).txt", 2
ADO_Stream.Close
Set ADO_Stream = Nothing
End Sub
点击“保存”宏脚本,主要的一步完成。
三: 在excel文件(test.xlsx)的首页创建两个图标,分别选择右键指定宏,一个指定上面的summary(),一个指定上面的SQL()。然后就可以在后续的sheet页创建自己需要生成SQL脚本的表结构名称了,记得每个sheet页面对应一个表结构及数据,使用方法如下:
A,将需要更新的对象表数据整个sheet拷进工具中,数据只保留需要更新的数据。
B,在第2行标出主键字段,填上“PK”即可。
看看代码
http://www.51testing.com/html/41/195041-831346.html

❹ 求全国所有城市名称的sql脚本或者数据库表

DROP
TABLE
IF
EXISTS
`dict_province`;
CREATE
TABLE
`dict_province`
(
`N_PROVID`
int(10)
unsigned
NOT
NULL
default
'0',
`S_PROVNAME`
varchar(30)
NOT
NULL,
`S_TYPE`
varchar(1)
default
NULL
COMMENT
'1
-
直辖市\r\n2
-
行政省\r\n3
-
自治区\r\n4
-
特别行政区\r\n5
-
其他国家\r\n见全局数据字典[省份类型]
\r\n',
`S_STATE`
varchar(1)
default
NULL
COMMENT
'0
-
禁用\r\n1
-
启用',
PRIMARY
KEY
(`N_PROVID`)
)
ENGINE=InnoDB
DEFAULT
CHARSET=utf8;
LOCK
TABLES
`dict_province`
WRITE;
/*!40000
ALTER
TABLE
`dict_province`
DISABLE
KEYS
*/;
INSERT
INTO
`dict_province`
VALUES
(1,'国外','5','1'),(10,'北京','1','1'),(11,'上海','1','1'),(12,'天津','1','1'),(13,'重庆','1','1'),(14,'河北','2','1'),(15,'山西','2','1'),(16,'内蒙古','3','1'),(17,'辽宁','2','1'),(18,'吉林','2','1'),(19,'黑龙江','2','1'),(20,'江苏','2','1'),(21,'浙江','2','1'),(22,'安徽','2','1'),(23,'福建','2','1'),(24,'江西','2','1'),(25,'山东','2','1'),(26,'河南','2','1'),(27,'湖北','2','1'),(28,'湖南','2','1'),(29,'广东','2','1'),(30,'广西','3','1'),(31,'海南','2','1'),(32,'四川','2','1'),(33,'贵州','2','1'),(34,'云南','2','1'),(35,'西藏','3','1'),(36,'陕西','2','1'),(37,'甘肃','2','1'),(38,'青海','2','1'),(39,'宁夏','3','1'),(40,'新疆','3','1'),(41,'香港','4','1'),(42,'澳门','4','1'),(43,'台湾','2','1');
/*!40000
ALTER
TABLE
`dict_province`
ENABLE
KEYS
*/;
UNLOCK
TABLES;

❺ SQL脚本中,if 判断怎么写

语法
if (condition)
begin
(statement block)
end
else if (condition)
begin
statement block)
end
else
begin
(statement block)
end
注意当所指定的条件为真时对应的BEGIN END 语句块就会被执行同时

❻ sql server自动生成批量执行SQL脚本的批处理

场景:

DBA那边给我导出了所有的存储 函数等等对象的创建脚本 有上千个文件

现在需要将这些对象创建脚本导入到另外一个库 如何解决呢?

手动一个个执行显然不太现实

于是手动写了一个批处理 将所有的文件形成一个 SQL的脚本 最后以@生成的 SQL脚本方式导仔派贺入到目标库中

OS环境:WINDOWS xp

脚本内容如下:

@echo off if exist list sql del list sql /q :input cls set input=: set /p input= 请输入要进念派行判断的路径 set "input=%input:"=%" :: 上面这句为判断%input%中是否存在引号 有则剔除 if "%input%"==":" goto input if not exist "%input%" goto input for /f "delims=" %%i in ( dir /b /a d /s "%input%" ) do echo @@%%~fnxi>>list sql if not exist list sql goto no_file start list sql exit :no_file cls echo %cur_dir% 出现错误 未成功生成list sql脚本! pause

使用:

另存为 BAT类型文件后 双击执行

输入你脚本的路径:

如我的E盘CRY文件夹下 有如下类型的文件:

TEST PRC

TEST FNC(有子文件夹 )

TEST VW

执行该批处理后 最后生成的list sql脚本文件内容如下(执行完批处理后会用默认的编辑器自动打开该文件):

@@E:cryTEST PRC

@@E:cry TEST FNC

@@E:cryTEST VW

打开SQLPLUS 以指定用户登录数据库 然后执行: (我的脚本文件羡磨生成在d盘)

@D:list sql

这样所有的对象就会自动在指定用户下生成

lishixin/Article/program/SQLServer/201311/22286

❼ 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)
{

}

}
}

❽ 如何通过SQL脚本创建数据库

登陆到mssql数据库上,找到系统默认数据库,右键-任务-生成脚本USE [master]
GO
IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = N'ReportServerTempDB')
BEGIN
CREATE DATABASE [ReportServerTempDB] ON PRIMARY
(
NAME = N'ReportServerTempDB',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ReportServerTempDB.mdf' ,
SIZE = 2240KB ,
MAXSIZE = UNLIMITED,
FILEGROWTH = 1024KB
)
LOG ON
(
NAME = N'ReportServerTempDB_log',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ReportServerTempDB_log.LDF' ,
SIZE = 832KB ,
MAXSIZE = 2048GB ,
FILEGROWTH = 10%
)
END

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:432
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:557
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:743
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:536
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:146
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:232
java驼峰 发布:2025-02-02 09:13:26 浏览:651
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:532
linuxadobe 发布:2025-02-02 09:09:43 浏览:212
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:726