[转]SQL Server 结构读取
-- 本文来自:http://www.cnblogs.com/StrangeCity/p/4352753.html
-- 获取一个连接上的所有数据库信息
SELECT * FROM master..sysdatabases
-- 获取一个数据库上的所有表字段信息
select
[表名]=c.Name,
[表说明]=isnull(f.[value],''),
[列序号]=a.Column_id,
[列名]=a.Name,
[列说明]=isnull(e.[value],''),
[数据库类型]=b.Name,
[类型]= case when b.Name = 'image' then 'byte[]'
when b.Name in('image','uniqueidentifier','ntext','varchar','ntext','nchar','nvarchar','text','char') then 'string'
when b.Name in('tinyint','smallint','int','bigint') then 'int'
when b.Name in('datetime','smalldatetime') then 'DateTime'
when b.Name in('float','decimal','numeric','money','real','smallmoney') then 'decimal'
when b.Name ='bit' then 'bool' else b.name end ,
[标识]= case when is_identity=1 then '是' else '' end,
[主键]= case when exists(select 1 from sys.objects x join sys.indexes y on x.Type=N'PK' and x.Name=y.Name
join sysindexkeys z on z.ID=a.Object_id and z.indid=y.index_id and z.Colid=a.Column_id)
then '是' else '' end,
[字节数]=case when a.[max_length]=-1 and b.Name!='xml' then 'max/2G'
when b.Name='xml' then '2^31-1字节/2G'
else rtrim(a.[max_length]) end,
[长度]=case when ColumnProperty(a.object_id,a.Name,'Precision')=-1 then '2^31-1'
else rtrim(ColumnProperty(a.object_id,a.Name,'Precision')) end,
[小数位]=isnull(ColumnProperty(a.object_id,a.Name,'Scale'),0),
[是否为空]=case when a.is_nullable=1 then '是' else '' end,
[默认值]=isnull(d.text,'')
from
sys.columns a
left join
sys.types b on a.user_type_id=b.user_type_id
inner join
sys.objects c on a.object_id=c.object_id and c.Type='U'
left join
syscomments d on a.default_object_id=d.ID
left join
sys.extended_properties e on e.major_id=c.object_id and e.minor_id=a.Column_id and e.class=1
left join
sys.extended_properties f on f.major_id=c.object_id and f.minor_id=0 and f.class=1
在 MSSQL 2008 或以上版本,可以使用以下语句 让相应用户组/用户 查看 或者 不能查看 所有数据库。
默认情况下,每个连接到 SQL Server 实例的用户都可查看该实例中的所有数据库。
DENY VIEW any DATABASE TO PUBLIC;
GRANT VIEW ANY DATABASE TO PUBLIC;
以下SQL 语句用于删除用户时提示 不能删除发布,不能修改数据库所有者,不能删除用户 时的解决方法
ALTER AUTHORIZATION ON SCHEMA::DB_OWNER TO dbo;
以下SQL 语句用于向指定用户展示指定数据库
ALTER AUTHORIZATION ON DATABASE::master TO dbo;
除了 HOST_NAME() ,还可以使用以下语句查询IP地址:
SELECT SERVERNAME = CONVERT(NVARCHAR(128),SERVERPROPERTY('SERVERNAME'))
,LOCAL_NET_ADDRESS AS 'IPAddressOfSQLServer'
,CLIENT_NET_ADDRESS AS 'ClientIPAddress'
FROM SYS.DM_EXEC_CONNECTIONS WHERE SESSION_ID = @@SPID
use master
go
grant VIEW SERVER STATE to user
一次添加用户后没权限,提示“sqlserver 服务器主体 无法在当前安全上下文下访问数据库。”
解决方法:
USE [TABLE_NAME]
GO
EXEC sp_addrolemember N'db_owner', N'adduser2'
GO
ALTER AUTHORIZATION ON DATABASE::TABLE_NAME TO adduser2
参考:http://www.cnblogs.com/chendaoyin/archive/2013/12/23/3487182.html
[转]SQL Server 结构读取的更多相关文章
- sql server 随机读取数据
--sql server 随机读取数据 * FROM [tablename] ORDER BY NEWID() pk from [tablename] ORDER BY NEWID()) --这两个方 ...
- 如何在Sql Server中读取最近一段时间的记录,比如取最近3天的或最近3个月的记录。
如何在Sql Server中读取最近一段时间的记录,比如取最近3天的或最近3个月的记录. 主要用到DATEADD函数,下面是详细语句 取最近3天 select * from 表名where rq> ...
- 漫谈可视化Prefuse(一)---从SQL Server数据库读取数据
上篇<可视化工具solo show-----Prefuse自带例子GraphView讲解>主要介绍了整个Prefuse工具集具有的一些特征.框架的运行流程,分析并展现了官方提供的例子Gra ...
- SQL Server数据库读取数据的DateReader类及其相关类
之前学了几天的SQL Server,现在用C#代码连接数据库了. 需要使用C#代码连接数据库,读取数据. 涉及的类有: ConfigurationManage SqlConnection SqlCom ...
- SQL Server 结构分解
关系引擎和存储引擎是SQL Server 的两大组件,其中关系引擎也叫查询处理器,它包括查询优化器.命令解析器.查询执行器.存储引擎管理所有的数据及涉及的IO,它包括事务管理器和数据访问方法和缓冲区管 ...
- python 连接SQL SERVER 并读取其数据
1.没什么难的操作 安装 pip install pymssql import pymssql #引入pymssql模块 import pandas as pd def conn(): connec ...
- Sql Server尝试读取或写入受保护的内存。这通常指示其他内存已损坏
今日遇到这样一个问题,用vs2010调试C#代码时,只要代码一运行到跟数据库关联的地方时,编译器就报错误,给的提示如:调试器已附加,要继续需要分离什么的,咋一看还以为是vs中调试器设置的问题,可后来仔 ...
- SQL Server 2008读取域帐户信息
参考:http://www.pawlowski.cz/2011/04/querying-active-directory-sql-server-t-sql/ 1.建立 link server . u ...
- SQL SERVER大话存储结构(1)_数据页类型及页面指令分析
如果转载,请注明博文来源: www.cnblogs.com/xinysu/ ,版权归 博客园 苏家小萝卜 所有.望各位支持! SQLServer的数据页大 ...
随机推荐
- Error:Cause: org/gradle/api/publication/maven/internal/DefaultMavenFactory 解决办法
当你使用的Gradle版本是2.4以上,Android插件版本是1.3.0以上的时候就会出现这个问题,这时候你只需将android-maven-gradle-plugin插件版本改为classpath ...
- Windows下编译YouCompleteMe流程
废话 生命在于折腾. 之前不用这个插件的原因: 因为要使这个插件起作用,前前后后需要下载几百MB(win下更是超过了1GB)的东西,包括了Clang编译器,ycmd的c艹源码还有ycm本身的vim s ...
- 201621123005《Java程序设计》第四周学习总结
201621123005<Java程序设计>第四周学习总结 标签(空格分隔): 1.本章学习总结 1. 面向对象设计 1.1 写出你认为本周学习中比较重要的知识点关键词 继承.多态.覆盖. ...
- (转) MapReduce Design Patterns(chapter 5 (part 1))(九)
Chapter 5. Join Patterns 把数据保存成一个巨大的数据集不是很常见.例如,用户信息数据频繁更新,所以要保存到关系数据库中.于此同时,web日志以恒定的数据流量增加,直接写到HDF ...
- if条件判断
if 条件判断的是布尔值,常用的有以下几种 1.in 在不在它里面,返回的是布尔值 names='zhangsan lisi xiaoming' print("zhangsan" ...
- C# Post发送数据返回页面结果
public string GetPage(string posturl, string postData) { Stream outstream = null; Stream instream = ...
- 值类型struct在foreach中的陷阱
最近踩了一个坑,为了优化代码,把class改为了struct,结果发现原来的初始化语句没有预期的运行,伪代码如下: public struct A { bool _isActive; public v ...
- HDU1576 A/B
暴力出奇迹,我就知道没取余那么正当,肯定有什么奇淫怪巧,果然5分钟A掉. #include<cstdio> #include<cstdlib> #include<iost ...
- MySQL 字段基本操作
MySQL添加字段的方法并不复杂,下面将为您详细介绍MySQL添加字段和修改字段等操作的实现方法,希望对您学习MySQL添加字段方面会有所帮助. .登录数据库 >mysql -u root -p ...
- 开启opcache提高性能
在开启opcache之前,我们先介绍一下编译与解释: 编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快:而解释器则是只在执行程 ...