取得SQLServer中某一欄位名稱所在的資料表及欄位相關資訊  …
小弟前幾天 下載安裝了 SQL SERVER 2008 感覺系統效能還不錯 但是要編輯 資料表卻出現 很苦惱 但經過一番波折 終於了解如何改善 先執行SQL Server Management Studio 選擇 工具 選項 在選擇 SQL SERVER 物件管理 再將 編輯前<N>個資料列表 命令的值 200 改為 0 確定 就可改善 編輯前200筆 資料表問題…
参考: 1.SQL查询语句 group by后, 字符串合并 2.sql for xml path用法 #需求: 合并列值 表结构,数据如下: id value ----- ------ aa bb aaa bbb ccc 需要得到结果: id values ----- ------------ aa,bb aaa,bbb,ccc 即:group by id, 求 value 的和(字符串相加) #解决方法: 1.传统方法:创建处理函数(sql server 2000只能用该方法) )) , '…
同樣都是刪掉服務參考再重建重編譯重發行,為什麼之前幾次都沒事? 這次只不過是刪掉服務參考,然後換了個名稱重建而已,做完就變這樣? 後來發現問題出在 app.config,因為之前 app.config 的內容幾乎都沒什麼變動 所以編譯之完後,就沒有跟著可執行檔一起複制出來, 然後搭上換過名稱的 Web Service 就出錯了.…
一些特別注重資訊安全.個人資料的公司或產業 (如: 金融.保險業),通常「測試用資料庫」的資料,會加上「遮蔽:去識別化」的功能,避免個資外洩.以往必須自己撰寫 SQL 語句或 Stored Procedure 來處理,且遇到不同的資料庫使用者,要給予不同瀏覽權限時,寫起來就更麻煩.現在 SQL Server 2016 已內建「動態資料遮罩 (Dynamic Data Masking)」功能,除了資料可針對自訂邏輯來遮蔽,還可針對不同的資料庫使用者,給予不同的瀏覽權限. --建立測試資料表 CRE…
最近使用mssql的时候对于未null的字段查询不到 http://blogs.msdn.com/b/jchiou/archive/2008/05/01/sql-server-null.aspx 先建立測試資料表,如下: -- 1. 查詢資料表中所有的資料 SELECT * FROM tblCustomer -- 2. 使用『= NULL』查詢欄位為 NULL 的資料, -- 會找不到資料,但確實有 LastName 為 NULL 的資料 SELECT * FROM tblCustomer WH…
一.SqlServer 中 1. 创建表 create table testuser( id int, --primary key, names ), address ), paw ) ) 2.创建存储过程 ),),)) as begin declare @maxid int begin ; end --set IDENTITY_INSERT testuser on insert into testuser(id,names,address,paw)values(@id,@names,@addr…
有朋友問「如何直接unpivot成2個欄位」,如下所示, 先準備測試資料如下, view source print? 01 create table T ( 02 no varchar(10), 03 yearx varchar(4), 04 z_type varchar(1), 05 A01 smallint, 06 B01 smallint, 07 A02 smallint, 08 B02 smallint, 09 A03 smallint, 10 B03 smallint 11 ) 12…
因為這篇文章寫的比較長一些,我就將總結先列出來 總結 1. 除了WHERE條件外,JOINColumn除了記得建立索引,也要注意到選擇性的高低,如果真的找不到可用的Column,可以考慮在兩邊關聯的表上加入super eky,再做JOIN如果單純想測試這個Column的選擇性,可以透過這個語法SELECT 1 / CAST(COUNT(DISTINCT {COLUMN_NAME} ) AS NUMERIC(18, 2)) FROM {TABLE_NAME} 2. 某些情境下(像是本文的例子),索…
經常有人來問我特定 SQL Server 資料庫裡的使用者無法刪除的問題,這問題其實跟 SQL Server 的安全性架構有很大關係,解決這個問題當然還是瞭解觀念的重要性大於知道如何解決問題.除了講解觀念外,本篇文章也會列出一些出問題時的情境,方便快速解決問題. 我先假設各位已經知道 驗證 (Authentication) 與 授權 (Authorization) 的差別,簡單的來說 驗證負責辨識登入者的身份,而授權在於提供特定特定身份授與特定的操作權限. 在 SQL Server 裡提供了兩種…
最近在群裡有個朋友問了個問題是這樣的 用户表有一千多万行,主键是用户ID,我做了分区.但经常查询时,其它的表根据用户ID来关联,这样跨区查询,reads非常高.有什么好的处理办法?不分区的话,索引维护要好久的时间 在查看了他提供的分區資訊後,發現只有23個分區(包含一定要有的Null分區) Null分區在這裡的定義其實很簡單,當你的資料沒有辦法放到你先前建立的分區時,就會將該資料放到所謂的Null分區(預設分區). 因此如果在探尋分區規則時沒有依照現有的資料進行分區的設計,將會很容易導致資料偏斜…
回到目录 在SQLSERVER中每个会话,即每个查询分析器窗口都会产生一个SQL进程,对于那些持续时间短的进程,它们转瞬即失,而对于持续时间比较长的,我们需要希望查看它的运行状态,就可以借助SQL提供的sp_who命令,下面是对它的具体介绍,主要选自MSDN. sp_who [ [ @loginame = ] 'login' | session ID | 'ACTIVE' ]你可以在sp_who后面加你的SPID号(sessionID),登陆名,线程状态等…
我们知道SqlServer的查询优化器会将所执行的Sql语句的执行计划作缓存,如果后续查询可以复用缓存中的执行计划,那么SqlServer就会为后续查询复用执行计划而不是重新生成一个新的执行计划,因为复用执行计划的性能比生成执行计划的性能要高很多,所以SqlServer的这一特性可以大大提高Sql语句的执行效率.特别是对于存储过程,因为存储过程的执行计划是在存储过程第一次执行的时候生成的,存储过程的执行计划生成后就会被缓存到SqlServer的执行计划列表中,如果以后存储过程再被执行,那么存储过…
准备数据 Sql脚本如下,两张表,一张客户表Customers只包含customerid和city字段,一张订单表Orders包含orderid和customerid(关联Customers的customerid字段) IF OBJECT_ID('dbo.Orders') IS NOT NULL DROP TABLE dbo.Orders; IF OBJECT_ID('dbo.Customers') IS NOT NULL DROP TABLE dbo.Customers; GO CREATE…
原文:SQL点滴18-SqlServer中的merge操作,相当地风骚 今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在technet上搜索发现别有洞天,原来是另外一个sql关键字,t-sql的语法还是相当地丰富的.本篇是一篇学习笔记,没有什么新意,这里给出technet上的地址连接供大家参考权威:http://technet.microsoft.com/zh-cn/library/bb510625.aspx,这里具体的语…
在SQLServer中主外键是什么,以及主外键如何创建,在这里就不说了,不懂的可以点击这里,这篇文章也是博客园的博友写的,我觉得总结的很好: 此篇文章主要介绍通过SQL脚本来查看Sqlserver中主外键关系: SELECT f.name AS '关系名称', OBJECT_NAME(f.parent_object_id) AS '表名称', COL_NAME(fc.parent_object_id,fc.parent_column_id) AS '字段名称', OBJECT_NAME (f.r…
sqlserver中的表信息字段信息这些东西也是放到系统表中的,以下sql语句用于查询某表的字段信息. select t1.id object_id,t1.name object_name,t2.value table_comment,t3.colorder,t3.name col_name,t5.name col_type,COLUMNPROPERTY(t1.id,t3.name,'Precision') precision,COLUMNPROPERTY(t1.id,t3.name,'Scal…
SQLServer中查询表结构(表主键 .列说明.列数据类型.所有表名)的Sql语句 1.查询数据库中的所有表名称: SELECT name FROM SysObjects Where XType='U' ORDER BY Name 结果: 2.查询数据库中指定表的表结构: --快速查看表结构 THEN obj.name ELSE '' END AS 表名, col.colorder AS 序号 , col.name AS 列名 , ISNULL(ep.[value], '') AS 列说明 ,…
在SqlServer中这个是用生成sql脚本生成的 要是在导入数据库用数据导入/导出向导导不进去 其实要用查询分析器来打开sql文件 然后执行就可以了…
问题:在SQL SERVER 2005中还原数据库时出现错误:system.data.sqlclient.sqlerror 媒体集有 2 个媒体簇 但只提供了 1 个.必须提供所有成员. (microsoft.sqlserver.smo) 原因:由于备份时,没有去掉默认的备份路径(C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\backup.bak),而又添加了一个新的路径,结果备份了两份,但它们之间彼此依赖,所以没有办法恢复…
本文记录了我在实际工作中关于数据库操作上一些小经验,也是新手入门golang时我认为一定会碰到问题,没有什么高大上的东西,所以希望能抛砖引玉,也算是对这个问题的一次总结. 其实我也是一个新手,机缘巧合几个月前开始做golang开发,以前一直是以.NET技术栈为主,文章如有错误不吝指正. 访问数据库 相信大家第一次碰到这个问题的时候应该和我一样,去网上找个例子参考一下.没错,这样的例子一搜一大把,于是我们很容易(抄)写了如下一段代码: import ( "fmt" "datab…
( 一)利用Sql语句查询数据库中的所有表 1.利用sysobjects系统表 select * from sysobjects where xtype='U'  2,利用sys.tables目录视图 sys.tables目录视图,为每个表对象返回一行. select * from sys.tables 注意:sys.tables目录视图也只有在SQL SERVER2005及以上的版本中才能使用. 3,利用存储过程sp_tables exec sp_tables (二)利用Sql语句查询数据中的…
转自:http://blog.sina.com.cn/s/blog_8020e41101019k7t.html SELECT field1/field2 FROM TB; 当 field1的数值 > field2的数值时,除法得出的结果是<1的,即0.xxxxxx 这个时候在DB2的环境下SELECT出来的值是0 解決方法: 先把field1转换成DOUBLE类型的,这样计算出来的就会得出小数点了,会显示出0.xxxx SELECT CAST(field1 AS FLOAT)/field2 F…
----1. 获取所有的数据库名----- SELECT NAME FROM MASTER.DBO.SYSDATABASES ORDER BY NAME -----2. 获取所有的表名------ SELECT NAME FROM SYSOBJECTS WHERE XTYPE='U' ORDER BY NAME --XTYPE='U':表示所有用户表; --XTYPE='S':表示所有系统表; SELECT NAME FROM SYSOBJECTS WHERE TYPE = 'U' AND SY…
我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生成一个GUID算法所花的时间肯定比你从数据表中重新查询上一条记录的ID的值然后再进行加1运算要少.而如果存在索引的情况下,每次插入记录都会进行索引重建,这是非常耗性能的.如果表中无可避免的存在索引,我们可以通过先删除索引,然后批…
大部分人都知道用oledb来读取数据到dataset,但是读取之后怎么处理dataset就千奇百怪了.很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,System.Data.SqlClient.SqlBulkCopy 对于新手来说还是比较陌生的,这个就是传说中效率极高的bcp,6万多数据从excel导入到sql只需要4.5秒. using System;using System.Data;using System.Windows.Forms;using System.Data.Ole…
更多资源:http://denghejun.github.io 备份 SQLServer中的备份,这里是T-SQL的用法,具体示例代码如下,使用也相对简单,其中TestDatabase 是指所需备份的数据库名称,@FileName是需要备份的全路径,例如@FileName的可能值为'D://Backups//file1.bak': USE TestDatabase BACKUP DATABASE TestDatabase TO DISK = @FileName 还原 SQLServer中的还原稍…
SQLSERVER中的ALL.PERCENT.CUBE关键字.ROLLUP关键字和GROUPING函数 先来创建一个测试表 USE [tempdb] GO )) GO INSERT INTO [#temptb] ( [id], [NAME] ) ,'中国' UNION ALL ,'中国' UNION ALL ,'英国' UNION ALL ,'英国' UNION ALL ,'美国' UNION ALL ,'美国' UNION ALL SELECT null, '法国' UNION ALL ,'法…
1 --SQLSERVER中的加密函数 2013-7-11 2 ENCRYPTBYASYMKEY() --非对称密钥 3 ENCRYPTBYCERT() --证书加密 4 ENCRYPTBYKEY() --对称密钥 5 ENCRYPTBYPASSPHRASE() --通行短语(PassPhrase)加密 6 7 8 --------------------------------------------------------------------------------------- 9 -…
本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生 成一个GUID算法所花的时间肯定比你从数据表中重新查询上一条记录的ID的值然后再进行加1运算要少.而如果存在索引的情况下,每次插入记录都会进行索 引重建,这是非常耗性能的.如果表中无可避免的存在索引,我们可以通过先删除索引,然后批量插入,最后再重建索引的方式来提高效率. create database…