When writing an INSERT statement, what code do I pass to the SQL database to automatically truncate a value to fit in to the database if it contains more characters than the field the data is being entered into?
I am trying to import data from an excel Sheet to SQL Database using OPENROWSET. After import I found that all the cells containing data of more than 2000 length got truncated to 255 characters only. I tried finding the solution and found that We need to have the data with length more than 255 in first 8 rows of Excel sheet. It worked for me also. But In real scenario the data that I cant do the manual work on excel. I tried out with Dot Net utility and SSIS package also but the truncation is still the issue.
INSERT into tmp_Test SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=D:Book1.xlsx', [Sheet1$])
I'm using SQL 7. Is there a way I can allow data to be truncated? I'm trying to insert a 50 length column into a 40 length column. I need to truncate the data to prepare for exporting to a fixed field format.
I have an application that uses a Cache data base. The data is exposed to sql server via a linked server.
In the Cache database they have data columns that can be up to 32395 characters long. When I do a simple select query like this:
select Intervention_text from cwsavpmtest_live..system.Intervention_data
… I get the error message:
Server: Msg 7341, Level 16, State 2, Line 1 Could not get the current row value of column '[cwsavpmtest_live]..[system].[Intervention_data].intervention_text' from the OLE DB provider 'MSDASQL'. [OLE/DB provider returned message: Requested conversion is not supported.] OLE DB error trace [OLE/DB Provider 'MSDASQL' IRowset::GetData returned 0x80040e1d].
I figured out that I could get around the problem with an OPENQUERY like this:
SELECT * FROM OPENQUERY(cwsavpmtest_live, 'select left(Intervention_text,32395) from Intervention_data’)
The error goes away, but I only get the first 255 characters of the data. I don’t really need all 32395 chars (I figure 4000 chars would be acceptable).
This is not a display problem in Query Analyzer. I set the maximum characters per column to 8000 on the Results tab of the Option dialog. Also I have a stored procedure that is called by Reporting Services and it is only sending 255 characters to the report.
The stored procedure has code that looks like this:
With a database size of almost 2 GB, I run the 'truncate table eventlog command' which completes successfully, but the database size only decreases by about 10 MB so stays too large - indeed the number of rows in the eventlog table is minimal, but the otehr tables in this database don't show such an amount of tables large enough to cause the size issue either. What could be the reason and how can I reduce it (possibly truncating another table but then which one, how could I determine which is too large and needs truncating?).
I have done DTS that export data from SQL to .xls, it works perfect, my problem is my table from SQL get truncated everytime before i load data but my .xls file always come with previous records which I don't want. i.e. if my Sql table had 3 rows , when i finish to execute the dts, my .xls come with 3 rows, when I exec again, my table get truncated and my .xls add another 3 rows. How can I solve this
hi, i want to lost data automatically after 3days. but i don't know how to use job scheduling in sql2000 and how to query to add date to datatime column automatically when the data is inserted. Plz help me!
I am using the flat file connection manager. I read in a set of flat files and copy them into a staging database table. I want to ignore anything in the text file past column 266. I can't get this to work correctly. I can't define the last column to end at 266 and ignore the rest. I tried adding an extra column but that did not work either.
Hi i have 2 sql servers ie solomon(acounting package) and production server. so if i'll change the data ie customer info in solomon then it'll be update the data(related tables) in production server automatically.how it'll update the customer info from one server to another server automatically after making changes. thanx in advance reddy
hi, is it possible to get the back up of a particular database automatically at fixed interval of time i.e for every two days or two hours etc. i am sql server 2005 as back end of my project. please show me a way in sql express edition too along with sql sever edition.
One can never consent to creep,when one feels an impulse to soar RAMMOHAN
Am working on sql database table shifting to new database tables. Am getting the following error while truncating the tables:-
Cannot truncate table 'orderItem' because it is being referenced by a FOREIGN KEY constraint.How can i remove all the items in the table if i found this error.
I am very well versed on manipulating data using passthrough queries through access or the command object in ADO/VBA but this problem requires a sql server side solution and I have been assigned the task
Scenario
Access via an ODBC link cannot view Sql table data that uses a BigInt as a primary key. Access can update the data, insert data ands delete data to these tables - but viewing (by design) returns the actual count of the rows but each field is populated with #deleted.
I can view the table data if I use a passtyhrough query but performing row level and field level edits from there is impossible. Not all people have Studio manager so that is not an option.
We are moving away from our legacy application and the development company has already developed the schema using the BigInt so changing that to a numeric or integer is out of the question. My boss has determined that using a set of bridge tables with identical tables in a different database where we replace the bigint with int will work - we can view the data in the "bridged" database and even update it from select queries and simply by opening the table in view mode from Access.
Here is the hard part (for me) because I have never done this. I can write SQL and understand the security/roles etc, but I have never administered SQL server regarding server side triggers and stored procedures - I have always used the command object or passthrough queries to deal with sql stored procedures. I need to either
A)Create some trigger behind the tables in my bridge table that will fire a stored procedure to replicate the data to the bigint database. They are both on the same sever.
B)Somehow create a "mirror" that always replicates from my bridge database tables (5 of them) to the new database.
I have created a table with the following columns...Date(datetime),Actual (Int),Planned (Int)I need to insert weekending dates starting from 23/04/04 loopingthru'for the next 52weeks automatically into the date column.Then in the actual and planned colums, I need to insert a count ofsome records in the table.I will appreciate help on a SQL query to achieve this!
I have 2 identical Analytics cubes, Cube 1 & 2, my reports point to Cube 1, when Cube 2 is refreshed the reports data source is manually repointed to the updated Cube 2. The following day the Cube 1 is refreshed and again the reports data source is edited and repointed back to Cube 1.
This ensures that if a cube build failes the reports aren't down.
To modify the data source I connect to Reporting Services using SSMS go to the Data source folder and manually edit the Data source.
I have looked through the Reporting database in SQL Server but didn't see anything that resembled the connection string for me to edit.
Are the connection strings for the Data sources stored in the Reporting Database ? Where can I find them?
Here is a Microsoft document that gave me the idea. http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/scoqryas.mspx
It talks about changing the connections strings in the Web UI? But doesn't tell you how or point to any docs that do.
Is there a way to automate this and is anyone else running a similar setup.
I have a windows app which is used in australia and uses web services to communicate with the database located in new zealand. I have a problem where dates that are returned from SQL are automatically modified to suit the timezone and i dont know how to turn it off.
For example, i insert the value '10/Jan/2006 20:00' into the database from a PC located in australia. When that data is selected back out, a 4 hour time offset is automatically applied to it and the time is returned as '10/Jan/2006 16:00'.
My current workaround is to modify my queries to say;
"Select convert(varchar, tb_date) tb_date from tablename"
Which returns the date as a string rather than a datetime which means the time offset is not applied.
This is a really poor solution and i'd be really keen to find out a better way... Thanks
I am trying to find a way of creating my Repoting Services reports of automatically refreshing once our ETL load has completd. I have created a process that creates a file is a particular directory once the data has completed loading however I am unsure how to make the report look for this file and then refresh the report.
at first let me specify my requirement. a) i have an excel file with more than one sheets b) i want to import data from that excel file into sqlserver 2000 using asp.net & c# NOW i need a program that automatically realize total sheets of excel file AND insert into seperate table please help me
Hi, This is my problem : I have listBox1, listBox2 controls bound to sqldatasource1 and sqldatasource2. I wrote one stored procedure to retrieve data from my sql database like : select Id, Name,Address,Amount from KalakaDB
Now I want my listBox1 to display Name By name and my listBox2 to display Amount by decrease order how can i connect my sqldatacontrol to the stored procedure ?
How to create insert statements of the data from a table for top 'n' rows. I know we can create using generate scripts wizard, but we can't customize the number of rows. In my scenario i got a database with 10 tables where every table got millions of records, but the requirement is to sample out only top 10000 records from each table.
I am planning to generate table CREATE statements from GENERATE Scripts wizard and add this INSERT STATEMENT at the bottom.
EX : INSERT [dbo].[table] ([SERIALID], [BATCHID] VALUES (126751, '9100278GC4PM1', )
I have an Integration Services package that loads new data into tables that are dimension tables wi my cube. The same situation exists for my fact table. If I perform an "Analysis Services Processing Task" for the dimensions ,cube and measures, will that move the new data into my cube or do I need to perform the "Dimension Processing Destination" data flow task prior to this? Is the initial processing task good enough?
Please forgive the elementary nature of my question, but could someone please explain the differences between these two database backup types:
1. Log backup 2. Log backup no truncate
From what I understand and have read, the "no truncate" backup method keeps the entire transaction log indefinitely. Using the truncation method, the transaction log is either 1) compressed or 2) cleaned up so that any completed transactions are removed from the log. Which one of these is true?
And, for the big question: is it better to run a backup of the transaction log with truncation or not? Our current backup scheme is similar to the following:
Full backup every 24 hours transaction log backup every hour with no truncation
Should we insert a truncation backup somewhere in here? What is the danger of removing (or compressing) parts of the transaction log? Will this affect the restore process?
I pull data from Sql Server through the query, I want to pass the region parameter to the power pivot connection query. So that I can automatically pull the required region data. The parameter should pick the value from the excel range. And also how to control this through VBA
i read that i can Truncate a table even if child table has no records so i tries to disable constraints but still can't get it to workCannot truncate table 'InventoryPC' because it is being referenced by a FOREIGN KEY constraint. disabling code on lines 9-13 and enabling codes on 36-40 1 ALTER PROCEDURE dbo.RevertDB 2 3 /* Reverts Database to original "Clean" State */ 4 AS 5 SET NOCOUNT OFF 6 DECLARE @Log AS varchar(MAX), @RowsInDB AS int 7 SET @Log = 'RevertDB Started at ' + CAST(GETDATE() AS varchar(50)) + '' 8 9 /* *** Disable Constraints *** */ 10 ALTER TABLE Booking NOCHECK CONSTRAINT ALL 11 ALTER TABLE InventoryPC NOCHECK CONSTRAINT ALL 12 ALTER TABLE PC NOCHECK CONSTRAINT ALL 13 ALTER TABLE Platform NOCHECK CONSTRAINT ALL 14 15 /* *** Start Truncates *** */ 16 TRUNCATE TABLE Booking 17 SET @Log = @Log + 'Trucate Table Booking - Done' + '' 18 SET @RowsInDB = (SELECT COUNT(BookingID) FROM Booking) 19 SET @Log = @Log + '-- Rows Affected: ' + CAST(@@ROWCOUNT AS varchar(10)) + ', Rows in Table: ' + CAST(@RowsInDB AS varchar(10)) + '' 20 21 TRUNCATE TABLE InventoryPC 22 SET @Log = @Log + 'Trucate Table InventoryPC - Done' + '' 23 SET @RowsInDB = (SELECT COUNT(InventoryID) FROM InventoryPC) 24 SET @Log = @Log + '-- Rows Affected: ' + CAST(@@ROWCOUNT AS varchar(10)) + ', Rows in Table: ' + CAST(@RowsInDB AS varchar(10)) + '' 25 26 TRUNCATE TABLE PC 27 SET @Log = @Log + 'Trucate Table PC - Done' + '' 28 SET @RowsInDB = (SELECT COUNT(PCID) FROM PC) 29 SET @Log = @Log + '-- Rows Affected: ' + CAST(@@ROWCOUNT AS varchar(10)) + ', Rows in Table: ' + CAST(@RowsInDB AS varchar(10)) + '' 30 31 TRUNCATE TABLE Platform 32 SET @Log = @Log + 'Trucate Table Platform - Done' + '' 33 SET @RowsInDB = (SELECT COUNT(PlatformID) FROM Platform) 34 SET @Log = @Log + '-- Rows Affected: ' + CAST(@@ROWCOUNT AS varchar) + ', Rows in Table: ' + CAST(@RowsInDB AS varchar(10)) + '' 35 36 /* *** Enable Constraints *** */ 37 ALTER TABLE Booking WITH CHECK CHECK CONSTRAINT ALL 38 ALTER TABLE InventoryPC WITH CHECK CHECK CONSTRAINT ALL 39 ALTER TABLE PC WITH CHECK CHECK CONSTRAINT ALL 40 ALTER TABLE Platform WITH CHECK CHECK CONSTRAINT ALL 41 42 SET @Log = @Log + '*** End Truncates ***' + '' 43 /* *** End Truncates *** */ 44 45 /* *** Start Insert Platform *** */ 46 SET @Log = @Log + 'Start Insert Platform' + '' 47 48 EXEC dbo.InsertPlatform 'Windows XP SP2 Professional Edition', 'Some description for Windows XP SP2 Professional Edition over here …' 49 EXEC dbo.InsertPlatform 'Windows Vista Ultimate', 'See everything you''re working on more clearly with Windows Aero, and quickly switch between windows or tasks using Windows Flip 3D and Live Thumbnails. You can easily find what you need—when you need it―with Instant Search and live icon previews that display the actual contents of your files. And while you''re at it, give your personal productivity a boost with instant access to the information you care about using Windows Sidebar and Gadgets. Put these easy-to-use and customizable mini-applications on your desktop and reveal the information you''re looking for at a glance.Website: http://www.microsoft.com/windows/products/windowsvista/seeit/default.mspx' 50 EXEC dbo.InsertPlatform 'Apple Mac OS X Tiger', 'Some description for Apple Mac OS X Tiger over here …' 51 EXEC dbo.InsertPlatform 'Apple Mac OS X Leopard', 'Desktop: The new look of Leopard showcases your favorite desktop image and puts new file Stacks at your fingertips for a stunning, clutter-free workspace.Finder: Browse your files like you browse your music with Cover Flow.Time Machine: See how your system looked on any given day and restore files with aWebsite: http://www.apple.com/macosx/leopard/features/' 52 EXEC dbo.InsertPlatform 'Red Hat Linux', 'Some description for Red Hat Linux over here …' 53 54 SET @Log = @Log + 'Rows In Platform: ' + (SELECT COUNT(PlatformID) FROM Platform) + '' 55 /* *** Start Insert PC *** */ 56 SET @Log = @Log + 'Start Insert PC' + '' 57 58 DECLARE @WinXP int, @WinVista int, @OSXTiger int, @OSXLeopard int, @RedHat int 59 SET @WinXP = (SELECT PlatformID FROM Platform WHERE Title = 'Windows XP SP2 Professional Edition') 60 SET @WinVista = (SELECT PlatformID FROM Platform WHERE Title = 'Windows Vista Ultimate') 61 SET @OSXTiger = (SELECT PlatformID FROM Platform WHERE Title = 'Apple Mac OS X Tiger') 62 SET @OSXLeopard = (SELECT PlatformID FROM Platform WHERE Title = 'Apple Mac OS X Leopard') 63 SET @RedHat = (SELECT PlatformID FROM Platform WHERE Title = 'Red Hat Linux') 64 65 EXEC dbo.InsertPC 'Fusion PC One', 'Description here ...', 'Intel Core2 Duo E6600 2.4 GHz 1066MHz', '1GB Dual Channel DDR2 667 SDRAM', '120GB SATA2 NCQ HDD', 'NVIDIA GeForce 8600 256MB GDDR3', '22" 3000:1 Wide Screen LCD', @WinXP 66 EXEC dbo.InsertPC 'Fusion PC Two', 'Description here ...', 'Intel Core2 Duo E6850 3 GHz 1333MHz', '2GB Dual Channel DDR2 800 SDRAM', '240GB SATA2 NCQ HDD', 'NVIDIA GeForce 8800 Ultra 256MB GDDR3 SLI', '24" 3000:1 Wide Screen LCD', @WinVista 67 EXEC dbo.InsertPC 'Fusion PC Three', 'Description here ...', 'AMD Athlon 64 X2 Dual Core 6000+ 3 GHz', '2GB Dual Channel DDR2 667 SDRAM', '240GB SATA2 NCQ HDD', 'ATI Radeon Cross Fire 2900 256MB GDDR3', '24" 3000:1 Wide Screen LCD', @WinVista 68 EXEC dbo.InsertPC 'Fusion X1', 'Description here ...', 'Intel Core2 Extreme Q6850 3 GHz 1333MHz', '6GB Dual Channel DDR2 800 SDRAM', '500GB SATA2 NCQ HDD', 'NVIDIA GeForce 8800 Ultra 256MB GDDR3 SLI', '30" 3000:1 Wide Screen LCD', @OSXLeopard 69 EXEC dbo.InsertPC 'Fusion X2', 'Description here ...', 'AMD Athlon 64 FX 74 3 GHz', '6GB Dual Channel DDR2 800 SDRAM', '500GB SATA2 NCQ HDD', 'NVIDIA GeForce 8900 Ultra SLI 256MB GDDR3', '30" 3000:1 Wide Screen LCD', @WinVista 70 EXEC dbo.InsertPC 'Fusion Tiger 1', 'Description here ...', 'Intel Core2 Duo E6600 2.4 GHz 1066MHz', '2GB Dual Channel DDR2 800 SDRAM', '120GB SATA2 NCQ HDD', 'NVIDIA GeForce 8600 256MB GDDR3 SLI', '22" 3000:1 Wide Screen LCD', @OSXTiger 71 EXEC dbo.InsertPC 'Fusion Linux 1', 'Description here ...', 'AMD Athlon 64 X2 6000+ 3 GHz', '1GB Dual Channel DDR2 800 SDRAM', '120GB SATA2 NCQ HDD', 'NVIDIA GeForce 8600 256MB GDDR3', '22" 3000:1 Wide Screen LCD', @RedHat 72 73 SET @Log = @Log + 'Rows In PC: ' + (SELECT COUNT(PCID) FROM PC) + '' 74 75 /* *** Start Insert Inventory *** */ 76 SET @Log = @Log + 'Start Insert Inventory' + '' 77 78 DECLARE @F1 int, @F2 int, @F3 int, @FX1 int, @FX2 int, @FT1 int, @FR1 int 79 SET @F1 = (SELECT PCID FROM PC WHERE Title = 'Fusion PC One') 80 SET @F2 = (SELECT PCID FROM PC WHERE Title = 'Fusion PC Two') 81 SET @F3 = (SELECT PCID FROM PC WHERE Title = 'Fusion PC Three') 82 SET @FX1 = (SELECT PCID FROM PC WHERE Title = 'Fusion X1') 83 SET @FX2 = (SELECT PCID FROM PC WHERE Title = 'Fusion X2') 84 SET @FT1 = (SELECT PCID FROM PC WHERE Title = 'Fusion Tiger One') 85 SET @FR1 = (SELECT PCID FROM PC WHERE Title = 'Fusion Linux One') 86 87 EXEC dbo.InsertInventory 10, @F1, 2.5, 'iCluster Fusion One' 88 EXEC dbo.InsertInventory 10, @F2, 2.5, 'iCluster Fusion Two' 89 EXEC dbo.InsertInventory 10, @F3, 2.5, 'iCluster Fusion Three' 90 EXEC dbo.InsertInventory 6, @FX1, 6, 'iCluster Fusion X1' 91 EXEC dbo.InsertInventory 6, @FX2, 6, 'iCluster Fusion X2' 92 EXEC dbo.InsertInventory 10, @FT1, 3, 'iCluster Fusion Tiger One' 93 EXEC dbo.InsertInventory 30, @FR1, 2, 'iCluster Fusion Linux One' 94 95 SET @Log = @Log + 'Rows In Inventory: ' + (SELECT COUNT(InventoryID) FROM InventoryPC) + '' 96 97 RETURN @Log 98
I have two tables in my SQL CE database. tblTempData and tblBatchData. When the user wants to move the data from 'temp' into 'batch' I would like to truncate the 'temp' table. When I do this I get the unable to parse query error.
I have a simple stored procedure that will truncate the log file but I now need to make this dynamic so that this proc can be run with any DB name. I know you can look up the logical filename in sysfiles but I'm not too sure how to write this procedure so that it will simply truncate the log file of the currently selected DB.
This is what I have so far which as you can see is hardcoded:
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS OFF GO
CREATE PROCEDURE TruncateLog AS
BACKUP LOG [FICaches] with TRUNCATE_ONLY
DBCC SHRINKFILE (FICaches_log, 50)
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO