摘要:
首先,sqlserver里的标识符有一定的规则,比如 你 create table abc 123(...) 那么中间含有空格,它不是符合规则的。 你会写做 create table [abc 123](....) 即以[]来定界标识符。quotename将 字串成为有效的标识符。 它有什么用呢? 我举个例子:你有个表名字叫做 aa[]bb 当某些应用动态语句查询时 你如何写呢 exec('select * from aa[]bb') ?Xset @sql='select * from ' + quotename('aa[]bb') exec(@ 阅读全文
摘要:
资料一1、停止数据库服务器,将数据库MDF文件和LDF文件复制备份一份 2、启动数据库服务器,删除置疑的数据库 3、仅用备份的数据库MDF文件附加数据库,sp_attach_db或者sp_attach_single_file_db可以附加数据库,出现类似下面的提示信息: 设备激活错误。物理文件名 'C:/Program Files/Microsoft SQL Server/MSSQL/data/myDb_Log.LDF' 可能有误。 已创建名为 'C:/Program Files/Microsoft SQL Server/MSSQL/Data/myDb_log.LDF& 阅读全文
摘要:
1、在c盘根目录建立test的文本文件,输入如下数据1 222 333 444 2 aaa bbb ccc2、创建测试表tb,并导入数据if object_id('tb') is not null drop table tb go create table tb(id varchar(10),code varchar(10),name varchar(10),remark varchar(10) ) goBULK INSERT tb FROM 'c:/test.txt' WITH ( FIELDTERMINATOR = ' ', ROWTERMI 阅读全文
摘要:
动态SQL:code that is executed dynamically。它一般是根据用户输入或外部条件动态组合的SQL语句块。动态SQL能灵活的发挥SQL强大的功能、方便的解决一些其它方法难以解决的问题。相信使用过动态SQL的人都能体会到它带来的便利,然而动态SQL有时候在执行性能(效率)上面不如静态SQL,而且使用不恰当,往往会在安全方面存在隐患(SQL 注入式攻击)。动态SQL可以通过EXECUTE 或SP_EXECUTESQL这两种方式来执行。(来自MSDN)EXECUTE执行 Transact-SQL 批中的命令字符串、字符串或执行下列模块之一:系统存储过程、用户定义存储过程、 阅读全文