當前位置:首頁 » 編程語言 » 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 瀏覽:430
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:555
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:742
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:534
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:144
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:230
java駝峰 發布:2025-02-02 09:13:26 瀏覽:649
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:530
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:210
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:725