declare @vExecStr nvarchar(4000)
set @vExecStr= ' '
select @[email protected]+ 'delete from '+name+char(13) from sysobjects where type= 'u '
print @vExecStr
請問以上語句代表什么意思?
------解决方案--------------------
清空当前数据库中所有用户表中的数据。
------解决方案--------------------
libin_ftsafe(子陌红尘:当libin告别ftsafe) ( ) 信誉:105 Blog 2007-03-20 11:55:13 得分: 0
清空当前数据库中所有用户表中的数据。
------解决方案--------------------
declare @vExecStr nvarchar(4000)
set @vExecStr= ' '
select @[email protected]+ 'delete from '+name+char(13) from sysobjects where type= 'u ' --用于生成一系列的delete from tname(实际表名来源于sysobjects系统表)的语句
print @vExecStr
------解决方案--------------------
想删所有用户表~~.....
------解决方案--------------------
有关系的表是搞不掉的....
------解决方案--------------------
--定义字符串
declare @vExecStr nvarchar(4000)
--给字符串赋值
set @vExecStr= ' '
--查询(讲sql语句封装成字符串)
select @[email protected]+ 'delete from '+name+char(13) from sysobjects where type= 'u '
--输出
print @vExecStr
这种方法便于维护,在多处引用的时候直接修改字符串就行了
^_^
------解决方案--------------------
删除所有用户表的数据
------解决方案--------------------
迭代
------解决方案--------------------
用迭代的方式生成一个大小为4000的字符串,其中内容为删除当前数据库所有的用户表的数据的SQL语句。
如果表太多的话,可能由于字符串不够大而不能涵盖所有的用户表。
------解决方案--------------------
我认为是删除用户数据表里的数据,但如果有外键约束就不能删除数据
个人想法!!!!
------解决方案--------------------
呵呵,实用吗
------解决方案--------------------
bu
------解决方案--------------------
先禁用当前数据库中所有的外键约束,然后再执行你的SQL,就可以清空当前数据库中所有用户表中的数据。
------解决方案--------------------
禁用当前数据库的所有外键约束,再执行你的SQL,就可以清空当前数据库中所有用户表中的数据。
------解决方案--------------------
DECLARE @CUR CURSOR
DECLARE @表名 VARCHAR(100)
DECLARE @字段名 VARCHAR(100)
DECLARE @约束名 VARCHAR(100)
DECLARE @SQL VARCHAR(8000)
--禁用所有外键约束
SET @CUR = CURSOR READ_ONLY
FOR
SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS)
ORDER BY TABLE_NAME, COLUMN_NAME
OPEN @CUR
FETCH NEXT FROM @CUR INTO @表名, @字段名, @约束名
WHILE (@@FETCH_STATUS = 0)
BEGIN
--禁用约束
SET @SQL = 'ALTER TABLE ' + @表名 + ' NOCHECK CONSTRAINT ' + @约束名
EXEC (@SQL)
FETCH NEXT FROM @CUR INTO @表名,@字段名,@约束名
END
CLOSE @CUR
DEALLOCATE @CUR
------解决方案--------------------
加個條件
declare @vExecStr nvarchar(4000)
set @vExecStr= ' '