动态sql语句基本语法
1 :普通SQL语句可以用Exec执行
例: Select * from tableName
Exec('select * from tableName')
Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N
2:字段名,表名,数据库名之类作为变量时,必须用动态SQL
错误: declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
正确: Exec('select ' + @fname + ' from tableName') -- 请注意加号前后的单引号的边上加空格
当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = 'FiledName' --设置字段名
declare @s varchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
相关文档:
环境:JDK1.5
数据库:Sql server 2005 +sp2
JDBC驱动:sqljdbc.jar
测试类代码如下:
import java.sql.*;
public class test {
/**
* @param args
* @throws SQLException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws SQL ......
类型名称
Oracle
SQLServer
比较
字符数据类型
CHAR
CHAR
都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb
变长字符数据类型
VARCHAR2
VARCHAR
Oracle里面最大长度为4kb,SQLServer里面最大长度为8kb
根据字符集而定的固定长度字符串
NCHAR
NCHAR
前者最大长度2kb后者最大长度4 ......
备份
BACKUP DATABASE mydb
TO DISK='c:\olddb.bak'
WITH INIT
--为了测试,把备份好的文件从C盘移动到D:\tempdb 文件夹
--还原
--1.用此语句得到备份文件的逻辑文件名:
RESTORE FILELISTONLY from DISK = N'd:\tempdb\olddb.bak' --备份文件存放路径
--看LogicalName,一般会有两个文件,如:
--olddb &nbs ......
文章由来: 最近需要做这样的测试:Install the products on machine which case-insensitive SQL installed.
所谓case-insensitive SQL installed 指在数据库安装时选择排序规则时 需要选择大小写区别的规则。
排序规则简介:
MS是这样描述的:"在 Micr ......
原始数据
TERMINAL_ID
MAXDATE
TERMINAL_ID
OCCUR_DATE_TIME
TROUBLE_CD
1
12345
20100401102754
12345
20100401102754
210
2
12345
20100401102754
12345
20100401102754
211
3
12345
20100401102754
12345
20100401102754
?09
......