关于使用多表做update的语法
一、当用一个表中的数据来更新另一个表中的数据,T-SQL提供多种写法(下面列出了二种),但建议用第一种写法,虽然传统,但结构清晰。并且要注意,当用一个表中的数据来更新另一个表中的数据时,二个表一定要有关联!1.update t1 set t1.c2 = t2.c2from t2 where t1.c1 = t2.c12.Update t1 set t1.c2 = t2.c2from t1 inner join t2 on t1.c1 = t2.c1二、FROM 子句中指定的表的别名不能作为 SET column_name 子句中被修改字段的限定符使用。例如,下面的内容无效:UPDATE titles SET t.ytd_
SQL Server中易混淆的数据类型
SQL Server中易混淆的数据类型 (1)char、varchar、text和nchar、nvarchar、ntextchar和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。后面三种数据类型和前面的相比,从名称上看只是多了个字母"n",它表示存储的是Unicode数据类型的字符。写
关于default约束
1. 如果一个field有default 值时,应加上它的constraint 名称,如:Crate table fb_user ( Id int, Name varchar(10) constraint DF_fb_user_name DEFAULT ‘aaa’ )2. 如果要删除一个有default值的字段,但以前又没有指定其constraint名称,这时应先查找这个字段上的constraint名称,然后先删除该constraint,再删除
自动检测两个数据库之间对象的存储过程
-- ============================================================-- Procedure Name : wh_check_dataobject-- Function : check the dataobjects between two database-- Failure return : 1-- Success return : 0---- Parameters :-- @database_check : the database that is checked-- @dataobject : (tb-table, sp-stored procedure, fn-function, tr-trigger, vw-view, all-all objects)-- author : royalhigh, Jan, 2005/20-- =====================
行长度不得超过 8060 字节
在SQL Server 2000中建表:CREATE TABLE man_sp_content ( sp_script varchar(8000) NOT NULL, version varchar(20) NOT NULL, sp_content_id int NOT NULL,
生成sql server2000对象创建脚本的存储过程(转)
生成sql server2000对象创建脚本的存储过程 通过读取sysobjects 等系统表的纪录,生成表、视图等数据库对象脚本的存储过程。已知问题:存储过程长度有限制,不能超过8000个字节,因为用来存储sql脚本的变量为varchar型,最大就是8000。-----------------------------------------------------------------------------------------------------------------------------if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_create_check]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[sp_
BLOB(二进制大对象:text、ntext或image)类型数据的操作
SQL SERVER 2000中,字符类型一般用char和varchar数据类型(短字符型),最长为8000字节,超过8000个字节的文本就要使用ntext或者text数据类型来存储; 二进制类型一般用binary、varbinary ,最长为8 KB,储超过 8 KB 的可变长度的二进制数据,如 Microsoft Word 文档、Microsoft Excel 电子表格、包含位图的图像、图形交换格式 (GIF) 文件和联合图像专家组 (JPEG) 文件,使用image 数据类型来存储。 ntext、text 和 image 数据类型在单个值中可以包含非常大的数据量,最大可达 2 GB。一、下面的函数和语句可以与 ntext、text 或 image 数据
SQL Server存储过程中raiserror的使用
一 系统预定义错误代码SQL Server 有3831个预定义错误代码,由master.dbo.sysmessages表维护。每一个错误代码都有相应的级别和描述。错误定义的级别从0到25。20以上的错误代表重大错误,通常意味着该错误会导致存储进程立刻终止,并且所有的客户连接都要重新初始化。非关键性错误只是禁止掉当前运行的程序行,并继续执行。判断错误是否发生和得到错误描述信息的方法:IF @@ERROR = 0begin SELECT @ERRORMESSAGETXT = description FROM master.dbo.sysmessages WHERE error = @@ERRORend二 raiserror语法msg_id 定制
关于SQL Server 2000的日志文件压缩
1. 把SQL Server 的故障模式置为简单模式,以节省log文件所占空间;alter database 'database_name' set recovery simple2. 在“Enterprise Manager”中用菜单操作或者用以下DBCC命令:USE 'database_name'GODBCC SHRINKFILE(select File_id('database_name_log'), 1)* 1表示1M, 'database_name_log'表示日志文件的逻辑文件名3. Backup日志,并在Backup后Truncate日志文件;---收缩日志backup log dbname with no_logdbcc shrinkdatabase('dbname',truncateonly)[@more@]
成功申请 itpub blog
2004年11月17日,下午14:30,成功申请itpub blog,十分感谢itpub提供这么个好东东,感谢tigerfish。 http://blog.itpub.net/admin.php[@more@]
关于collation参数
当前所建立的数据库均不支持中文以及一些特殊字符,像®、™等,在数据库之间进行数据迁移的时候,若两个数据库之间的collation name不同,就会导致数据的丢失。解决方法:创建dababase时,collation name默认是Latin1_General_CI_AS,改为Chinese_PRC_CI_AS即可。 [@more@]查询collate及修改的方法:1. sp_helpsort2. SELECT COLLATIONPROPERTY('Traditional_Spanish_CS_AS_KS_WS', 'CodePage')3. 查询有关数据库属性信息示例:SELECT DATABASEPROPERTYEX( 'plm_30' , 'Collation' )4. 修改数据库的collateALTER DATABASE databa