MSSQL - 技术教程文章
MSSQL存储过程实现拼接sql的注意点【代码】
这里我昨天碰到的问题就是执行一段根据变量tableName对不同的表进行字段状态的更改。由于服务器原因,我不能直接在数据访问层写SQL,所以只好抽离出来放到存储过程里面。这里就出现了一个问题,我花费了好久才弄通! 其实就是很简单的一个SQL语句: update table1 set field1=value1,field2 = value2 where id = id 我写成什么样子了呢?大家且看: declare@tableNamenvarchar(50),@field1int,@field2nvarchar,@idintdec...
mssql和sqlite中关于if not exists 的写法
在sql语名中,if not exists 即如果不存在,if exists 即如果存在。下面学习下二者的用法。a,判断数据库不存在时复制代码 代码如下:if not exists(select * from sys.databases where name = ‘database_name‘)b,判断表不存在时复制代码 代码如下:if not exists (select * from sysobjects where id = object_id(‘table_name‘) and OBJECTPROPERTY(id, ‘IsUserTable‘) = 1)c,判断列不存在复制代码 代码如下:if not exist...
MSSQL 计算年龄
ALTER FUNCTION [dbo].[GetAge] ( @birthday DATETIME )RETURNS NVARCHAR(20)AS BEGIN DECLARE @startDatetime DATETIME SET @startDatetime = @birthday IF ( @birthday IS NOT NULL AND ISDATE(@birthday) = 1 ) BEGIN DECLARE @age NVARCHAR(20) , @y INT , @m INT , @d INT , ...
最新版本的(应该是 SQL Server 2019) mssql-tools 镜像的 Dockerfile【代码】
唔,官方版本的 mssql-tools 镜像好像好久没更新了(https://hub.docker.com/_/microsoft-mssql-tools),用起来有一些bug,在此根据官方 Dockerfile 修改生成最新版本的镜像:# SQL Server Command Line Tools FROM ubuntu:20.04LABEL maintainer="SQL Server Engineering Team"# apt-get and system utilities RUN apt-get update && apt-get install -y \curl apt-transport-https debconf-utils gnupg2 \&& rm -rf /var/lib/ap...
MSSQL手札三 MSSQL存储过程【代码】
--存储过程完成一段sql代码的封装createproc trim --参数列表,多个间用逗号分隔@strvarchar(10) as--自定义代码段declare@str1varchar(10) set@str1=LTRIM(RTRIM(@str)) print@str1--使用存储过程exec trim ‘ abc ‘--‘abc‘ --===带输出参数的存储过程 --求两个数的和createproc sum1 @num1int, @num2int, @resultint output--表示这个参数可以将结果带出存储过程asset@result=@num1+@num2declare@r1intexec sum1 1,2,@r1 outp...
php查询mssql出现乱码的解决方法
本文实例讲述了php查询mssql出现乱码的解决方法。分享给大家供大家参考。具体分析如下:在php连接mssql时查询出来的全部是乱码,这种问题我根据经验知道是编码问题,下面来给各位总结一下解决方法.方法一,修改php.ini文件,当然根据你页面情况来设置也可以是utf-8编码了,代码如下:复制代码 代码如下:;mssql.charset = "ISO-8859-1" mssql.charset = "GBK"方法二,直接程序中转换,代码如下:复制代码 代码如下:iconv(‘GB2312‘,‘UTF-8‘...
python for MSSQLserver
# -*- coding: utf-8 -*-‘‘‘python coded by written in 2016/8/31Used for get win os log for each windows server‘‘‘ ‘‘‘pymssql 帮助文档http://pymssql.org/en/stable/pymssql_examples.html‘‘‘import pymssqlimport MySQLdbimport time#全局变量host = "192.168.33.190"user = "sa"password = "1111"dbname = "testdb"port = 1433 def fetch_row(): try: #conn = pymssql.connect(host,port,user,password,dbna...
mod_wsgi + pymssql访问SQL Server阻塞
在通过pymssql访问SQL Server时,直接在python中运行没有问题,在通过mod_wsgi和Apache进行部署时,发现所有请求都hang再数据库查询。通过google查到了答案,感谢google,详细描述请见:https://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API简要说一下,mod_wsgi针对每个virtual host和app mount point创建一个sub interpreter。python中有个著名的GIL,在通过C extension访问GIL State时,...
python-操作mssql数据库【代码】【图】
准备工作:cmd 命令行下安装pymssql:pip install pymssql 查询的数据库如下: 代码如下:#coding=utf-8import pymssqlclass MSSQLOBJ(object):def__init__(self, user, password, dbname, host=‘local‘, port=1433):self._connect = pymssql.connect(server=host, port=port, user=user, password=password, database=dbname, charset=‘UTF-8‘, as_dict=True)self._cursor = self._connect.cursor()def execute_query(self, s...
启用事务操作,解决批量插入或更新sqlite,mssql等数据库耗时问题【代码】
private void button1_Click(object sender, EventArgs e){//Sqlite使用事务批量操作 极大的提高速度DateTime starttime =DateTime.Now;using (SQLiteConnection con = new SQLiteConnection(connStr)){con.Open();DbTransaction trans = con.BeginTransaction();//开始事务 SQLiteCommand cmd = new SQLiteCommand(con);try{cmd.CommandText = "INSERTINTO MyTable(username,useraddr,userage) VALUES(@a,@b,@c)";for (int n ...
简单快速的MSSQL日志收缩
经常会碰到SQL数据库日志过大,把磁盘占满的情况,这时候不得不手动清理。方式有好多种,SQL脚本最直接,但不适合初学者,或几乎不懂MSSQL的管理员。 要系统地研究日志收缩(毕竟操作存在风险),可参照微软官方文档http://technet.microsoft.com/zh-cn/library/ms178037(v=sql.105).aspx 另外,操作前切记备份好最新的数据!! 这里要介绍的方法,思路是:数据库恢复模式改为“简单”,再用菜单操作收缩日志,再将恢复模...
与MSSQL对比学习MYSQL的心得(六)--函数【代码】【图】
数学函数1、求余函数MOD(X,Y)MOD(X,Y)返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用,他返回除法运算后的精确余数 SELECT MOD(31,8)2、四舍五入函数TRUNCATE(X,Y)TRUNCATE(X,Y)返回被舍去至小数点后y位的数字x。若y的值为0,则结果不带有小数点或不带有小数部分。若y设为负数,则截去(归零)x小数点左边起第y位开始后面所有低位的值。 SELECT TRUNCATE(1.32,1)TRUNCATE(1.32,1)保留小数点后一位数字,返回值为1.3TIPS...
MSSQL将逗号分隔的字符串转换成列显示【代码】
表Axm xk张三 语文,历史,音乐李四 体育,语文现在想查询得到xm xk张三 语文张三 历史张三 音乐李四 体育李四 语文1Select2 a.xm,xk=substring(a.xk,b.number,charindex(‘,‘,a.xk+‘,‘,b.number)-b.number) 3from4 表A a join master..spt_values b 5ON b.type=‘p‘AND b.numberBETWEEN1ANDLEN(a.xk) 6where7substring(‘,‘+a.xk,b.number,1)=‘,‘--1.将字符串转...
mssql sqlserver 验证整型函数分享【代码】
摘要:下文将制作一个isnumber验证整型的函数,供在sql脚本中做数值判断,如下所示: 例: 实现原理:判断 是否包含特殊字符,是否全部为0-9的自然数组成CREATE FUNCTION dbo.check_number ( /*验证一字符串类型是否为整型数值类型*/ @checkTmp VARCHAR(100) ) RETURNS BIT BEGIN DECLARE @tmp BIT IF LEFT(@checkTmp, 1) = ‘-‘ SET @checkTmp = SUBSTRING(@checkTmp, 2, LEN(@checkTmp)) IF (PATINDEX(‘%[^0-9-]%‘, @checkTmp) = ...
docker 安装 mssql【代码】
docker pull microsoft/mssql-server-linuxdocker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Pass@Word1" -p 1433:1433 --name mssql -d microsoft/mssql-server-linux连接navicat后, 执行语句创建数据库CREATE DATABASE test go原文:https://www.cnblogs.com/edhg/p/11530901.html
MSSQL日常维护【图】
查看当前sql运行的会话信息等:select * from sys.dm_exec_requests上面blocking_session_id会显示有问题的 session_id,前面的session_id是受影响的id然后可以执行kill杀死blocking_session_idkill session_id 即blocking_session_id 可以把所有数据库信息收集到一个用于专门监控的数据库然后便于统计错误信息和死锁日志等:SELECT TOP 1000 [ID] ,[AtServer] ,[LogDate] ,[ProcessInfo] ,[ErrorText]FROM [...
MSSQL存储过程1【代码】
ALTER PROCEDURE SP_TEST ASBEGINif 1=0SELECT UserName,TrainerID,TrainerInfoID FROM T_TrainerInfo;elseselect * from T_UserInfo; ENDGO原文:http://my.oschina.net/0x4ad/blog/413895
MSSQL 全文搜索 指定字符串【代码】
平时在在MSSql中查询数据的时候,想查找,某个字段在数据库中是否存在,并且查询出在哪个表中,哪个字段下面,在不知道的情况下,操作起来会很麻烦,然后就尝试些了一个sql语句,使用起来感觉挺方便的。当然了,也可以做成存储过程,来使用。 --一般查询DECLARE@stringVARCHAR(max)SET@string=‘七岁童年‘--要查询的字符串DECLARE@tbnameVARCHAR(50) DECLARE tbroy CURSORFORSELECT nameFROM sysobjectsWHERE xtype =‘u ‘--...
使用SQL生成指定数据库的数据字典(MSSQL)【代码】
USE DBNAME --指定要生成数据字典的数据库GO SELECT表名= CASEWHEN a.colorder= 1 THENd.name ELSE ‘‘ END, 表说明= CASEWHEN a.colorder= 1 THENisnull( f.value, ‘‘ ) ELSE ‘‘ END, 字段序号= a.colorder, 字段名= a.name, 标识= CASEWHEN COLUMNPROPERTY( a.id, a.name, ‘IsIdentity‘ ) = 1 THEN‘√‘ ELSE ‘‘ END, 主键= CASEWHEN EXISTS (SELECT1 FROMsysobjects WHERExtype = ‘PK‘ AND name IN ( SELECT name F...
MSSQL中 数值类型转换为千分号的解决方案【代码】
转自:http://www.maomao365.com/?p=4797前言:最近需要将报表中关于数值部分的数据,采用千分号的形式展现给用户,下面将讲解如何制作1 将数值类型转换为 money类型2 将money类型转换为varchar类型 ,并在convert函数的 style参数上放入1 ,就可以将转换出的字符串中加入千分号 11declare@afloat 22set@a=12580445.125 33printconvert(varchar(20),convert(money,@a),1) 44go 55 66 77declare@adecimal(18,2) 88set@a=12580445.125 9...
广州的小伙伴福利-由微软组织的在广州SQL Server线下活动【图】
请按照如下格式报名。原文:http://www.cnblogs.com/CareySon/p/5019951.html
Docker 容器里连接远程 Sql Server 数据库。【代码】
Docker 容器里无法连接sql server 2008 sp3以下版本的数据库。(已用sql server 2008测试)修改Dockerfile文件, (文件收vs 2019 创建默认配置,运行于Linux)把第一行:FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base改为FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-bionic AS base即可。数据库连接字符串格式:Server=IP,1433;Database=数据库名;User Id=用户名;Password=密码; 运行环境:windows 10 ...
解决 Sql Server 数据库总是显示“正在恢复”
SQL Server的应用系统突然间无法访问,访问时出现数据库连接错误,检查当前应用的数据库,数据库显示“正在恢复”,网上查询了一下解决办法记录一下: 方法一: 1.RESTORE database <数据库名> with norecovery 方法二: 1.停用SQL Server服务 2.将数据库的.mdf和.ldf文件更名 3.启用SQL Server服务 4.右键删除数据库 5.将第二部更名的.mdf和.ldf文件名称改回原来的数据库文件名。 6.在管理工具中重新附加数据...
聚集索引: 三级阶梯SQL Server索引
原文链接:http://www.sqlservercentral.com/articles/Stairway+Series/72351/ 聚集索引:三级阶梯SQL Server索引通过大卫·杜兰特,2013/01/25(第一次出版:2011/06/22)该系列本文是楼梯系列的一部分:SQL Server的阶梯索引索引数据库设计的基础,告诉开发人员使用数据库设计者的意图。 不幸的是索引时往往是后加上的性能问题出现。 终于在这里是一个简单的系列文章,应该让任何数据库专业迅速“加速”前面的水平在这个楼梯概述了非聚集索...
sqlserver两种分页方法比较
-- 3000 page(从1开始) 10 pagesize -- 方法1(效率不高):SELECT TOP 10 * FROM [xxx].[oooo] WHERE id NOT IN (SELECT TOP (10*(3000-1)) id FROM [xxx].[oooo] ORDER BY createtime DESC)ORDER BY createtime DESC; 方法2(效率高):SELECT TOP 10 * FROM (SELECT ROW_NUMBER() OVER (ORDER BY createtime DESC) AS RowNumber,* FROM [xxx].[oooo]) as A WHERE RowNumber > 10*(3000-1) ORDER BY createtime DESC...
SQLServer导出导出单表数据
1.SQLServer导出单表数据为TXT文件数据库--任务--导出数据这样,导出会带列名称。。 导入数据: 原文:http://www.cnblogs.com/niuge/p/4597992.html
本地jsp连到服务器上的sqlserver【代码】【图】
1.首先通过远程桌面连接到自己的服务器 方法很简答,打开远程桌面连接,然后输入服务器ip(外网ip),然后输入登录名和密码。 可以参考腾讯云给的教程:http://bbs.qcloud.com/forum.php?mod=viewthread&tid=2384&page=1&extra=#pid112462.然后打开浏览器,关闭IE的安全增强 打开服务器管理器,点左侧的服务器管理器 然后找到 配置IE ESC打开,然后都选择关闭,确定 这样就可以通过IE上网了。3.通过IE下载SQL S...
SQLServer创建约束
--创建数据库create database studentson primary( name=stu_data, filename=‘f:\SQL\stu_data.mdf‘, size=1, maxsize=10, filegrowth=1)log on ( name=stu_log, filename=‘f:\SQL\stu_log.ldf‘, size=1, maxsize=10, filegrowth=1)--删除数据库drop database students--使用数据库use students--删除表drop table scoredrop table studentdrop table class--自定义类型Exec sp_addty...
sqlserver相关问题
解决方案用户 ‘sa‘ 登录失败。该用户与可信 SQL Server 连接无关联问题一、忘记了登录Microsoft SQL Server 2005 的sa的登录密码解决方法:先用windows身份验证的方式登录进去,然后在‘安全性’-‘登录’-右键单击‘sa’-‘属性’,修改密码(sa的密码不能太简单,最好要有数字,字母,下划线字符组成,且长度最好大于10个字符);点击确定就可以了。问题二、已成功与服务器建立连接,但是在登录过程中发生错取。(provider:共享...
Sql Server系列:自定义函数
用户自定义函数可以像系统函数一样在查询或存储过程中调用,可以接受参数、执行操作并将操作结果以值的形式返回。返回值可以是单个标量或结果集。1. 标量函数 标量函数返回一个确定类型的标量值,对于多语句的标量函数,定义在BEGIN END块中的函数体包含一系列返回单个值的T-SQL语句。2. 表值函数 表值函数是返回数据类型为table的函数,返回的表值是单个SELECT语句查询的结果。原文:http://www.cnblogs.com/libingql/p/416...